大家好,欢迎来到IT知识分享网。
API:application programming interface(应用程序编程接口)
1. 常用API:
包 功能
java.lang Java程序的基础类,如字符串,多线程等,该包中的类使用的频率非常高,不需要import,可以直接使用
java.util 常用工具类如集合、随机数产生器、日历、时钟等
java.io 文件操作、输入/输出操作
java.net 网络操作
java.math 数学运算相关操作
java.security 安全相关操作
java.sql 数据库访问
java.text 处理文字、日期、数字、信息的格式
2. String操作
2.1 char charAt(int index)
获取给定位置上的字符
String str = "thinking in java"; char c = str.charAt(9); System.out.println(c);//i //avaj ni gnikniht for(int i=str.length()-1;i>=0;i--) { System.out.print(str.charAt(i));
2.2 int indexOf(String str)
检索给定字符串在当前字符串中的位置,若当前字符串不包含给定内容时返回-1
String str = "thinking in java"; int index = str.indexOf("in"); System.out.println(index); //从指定位置开始查找第一次出现的位置 index = str.indexOf("in",3); System.out.println(index); //查找最后一次出现给定字符串的位置 index = str.lastIndexOf("in"); System.out.println(index);
2.3 int length()
返回当前在字符串的长度(字符个数)
String str = "我爱java!"; int len = str.length(); System.out.println(len);
2.4 boolean matches(String regex)
字符串支持正则表达式方法一:
使用给定的正则表达式验证当前字符串是否符合格式要求,符合则返回 true.
注:给定的正则表达式无论是否添加了边界匹配,都是做全匹配验证的.
String mail = "fancq@tedu.cn"; /* * [a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+ * */ String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"; boolean match = mail.matches(regex); if(match) { System.out.println("是邮箱"); }else { System.out.println("不是邮箱"); }
2.5 String[] split(String regex)
字符串支持正则表达式方法二:
将当前字符串按照符合正则表达式的内容拆分
String str = "abc123def456ghi"; //按照数字部分拆分,保留字母部分 String[] data = str.split("[0-9]+"); System.out.println(data.length); for(int i=0;i<data.length;i++) { System.out.println(data[i]);
2.6 String replaceAll(String regex,String str)
将当前字符串中满足正则表达式的部分替换为给定的内容
String str = "abc123def456ghi"; /* * 将字符串中的数字部分替换为"#NUMBER#" */ str = str.replaceAll("[0-9]+", "#NUMBER#"); System.out.println(str);
2.7 boolean startsWith(String str)
boolean endsWith(String end)
判断当前字符串是否是以给定的字符串开始或结尾的.
String str = "thinking in java"; boolean starts = str.startsWith("think"); System.out.println("starts:"+starts); boolean ends = str.endsWith("ava"); System.out.println("ends:"+ends);
2.8 StringBuilder
java.lang.StringBuilder 该类是专门用来修改字符串的API.其内部维护一个可变的char数组,因此不会出现修改一次内容就创建一个新对象的问题(内存开销小,性能好) 并且StringBuilder还提供了便于修改字符串内容的一系列操作:增,删,改,插
String str = "努力学习java"; //默认实例化出来表示一个空字符串 // StringBuilder builder = new StringBuilder(); StringBuilder builder= new StringBuilder(str); /* * 努力学习java * 努力学习java,为了找个好工作! */ builder.append(",为了找个好工作!"); //调用toString方法可以得到改后的字符串 str = builder.toString(); System.out.println(str); /* * 努力学习java,为了找个好工作! * 努力学习java,就是为了改变世界! */ builder.replace(9, 16, "就是为了改变世界"); // System.out.println(builder.toString()); /* * 输出时直接输出builder也可以 * 因为输出方法内部会调用builder的toString * 方法,将返回的字符串输出 */ System.out.println(builder); /* * 努力学习java,就是为了改变世界! * ,就是为了改变世界! */ builder.delete(0, 8); System.out.println(builder); /* * ,就是为了改变世界! * 活着,就是为了改变世界! */ builder.insert(0, "活着"); System.out.println(builder);
StringBuilder builder= new StringBuilder("a"); for(int i=0;i<10000000;i++) { builder.append("a"); } System.out.println("执行完毕!");
2.9 String substring(int start,int end)
截取指定范围内的字符串
注:java API中通常使用两个数字表示范围时都是”含头不含尾”的.
String host = "www.tedu.cn"; String sub = host.substring(4,8); System.out.println(sub); //从指定位置开始截取到字符串末尾 sub = host.substring(4); System.out.println(sub);
2.10 String toUpperCase()
String toLowerCase()
将当前字符串中的英文部分转换为全大写或全小写
String str = "我爱Java"; System.out.println(str); String upper = str.toUpperCase(); System.out.println(upper); String lower = str.toLowerCase(); System.out.println(lower);
2.11 String trim()
去除当前字符串两边的空白字符
String str = " hello "; System.out.println(str); String trim = str.trim(); System.out.println(trim);
2.12 valueOf
String提供了一组静态方法
可以将给定的内容转换为字符串,常用的是将基本类型转换为字符串
int a = 123; String s = String.valueOf(a); System.out.println(s); double dou = 123.123; s = String.valueOf(dou); System.out.println(s); s = a+""; System.out.println(s);
3. Object类
3.1 toString
public String toString() { return "("+x+","+y+")";
3.2 equals
public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Point other = (Point) obj; if (x != other.x) return false; if (y != other.y) return false; return true; }
4. 包装类
4.1 基本类型转为对应包装类
Integer /Character
4.2 包装类转为基本类型
intValue/DoubleValue/byteValue
Integer.parseInt(string)
5. 文件操作
5.1 目录操作
获取当前目录所有子项
File dir = new File("."); if(dir.isDirectory()) { File[] subs = dir.listFiles(); }
删除目录
File dir = new File("./demo"); if(dir.exists()) { //使用delete方法删除目录时要求该目录必须是一个空目录,否则删除失败 dir.delete(); }
过滤指定类
File dir = new File("."); if(dir.isDirectory()) { //文件过滤器适合使用匿名内部类形式创建 FileFilter filter = new FileFilter() { public boolean accept(File file) { System.out.println("正在过滤:"+file.getName()); String fileName = file.getName(); return fileName.startsWith("."); }
创建一个新目录
File dir = new File("./demo"); if(!dir.exists()) { dir.mkdir(); }
创建一个多级目录
File dir = new File("./a/b/c/d/e/f"); if(!dir.exists()) { /* * mkdirs会将所有不存在的父目录一同创建出来. /* 而mkdir则不会,如果父目录不存在则创建失败. /* 因此以后推荐用mkdirs创建目录 */ dir.mkdirs();
5.2 File操作(表示文件系统中的一个文件或目录)
File file = new File("./(文件名).(后缀名)");
获取名字(getName();)
String name = file.getName();
判断文件状态
boolean cr = file.canRead(); //可读
boolean cw = file.canWrite(); //可写 boolean ih = file.isHidden(); //隐藏
使用File创建一个新文件(createNewFile();)
File file = new File("./test.txt");
file.createNewFile(); //如果文件不存在则创建该文件
删除文件(delete)
File file = new File("./test.txt"); if(file.exists()) { file.delete(); }
读文件
RandomAccessFile raf= new RandomAccessFile("./raf.dat","r"); int d = raf.read();//只有一个字节,第一遍读到1 System.out.println(d);//1 int b = raf.read();//已经读到结尾,所以返回-1 System.out.println(b);//-1 raf.close();
复制文件
RandomAccessFile src= new RandomAccessFile("./music.mp3","r"); //只读 RandomAccessFile desc= new RandomAccessFile("./music_cp.mp3","rw"); //读写 int d = -1; long start = System.currentTimeMillis(); while( (d = src.read()) != -1 ) { desc.write(d);
向文件中写入文本数据
RandomAccessFile raf= new RandomAccessFile("./raf.txt","rw"); String str = "来~左边跟我一起画个龙"; byte[] data = str.getBytes("utf-8"); raf.write(data); raf.write(",右边再画一道彩虹~".getBytes("utf-8")); System.out.println("写出完毕!"); raf.close();
从文件中读取文本数据
RandomAccessFile raf= new RandomAccessFile("./raf.txt","r"); byte[] data = new byte[(int)raf.length()]; raf.read(data); String str = new String(data,"UTF-8"); System.out.println(str); raf.close();
6. 使用RAF读写基本类型数据以及RAF基于指针的操作
获取RAF指针位置 getFilePointer()
移动指针到指定的位置 void seek(long pos)
读取指针位置的字节 read()
连续读取 readInt ( ) 读4字节
RandomAccessFile raf= new RandomAccessFile("test.dat","rw"); long pos = raf.getFilePointer(); //获取RAF的指针位置 System.out.println("pos:"+pos);
raf.seek(0); //指针位置回到0
int d = raf.read(); //读取指针位置的字节,只读一个字节
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32716.html