初学JAVA时,API太多,就没怎么记(估摸着也记不住),现在开始工作了,就把能遇到的API记录下来吧!
一、字符串操作
1. public String[] split(String regex, int limit)
regex作为分隔符,limit作为检索分隔符的次数。
描述:根据给定正则表达式的匹配拆分此字符串。
例如,String[] arr = "boo:and:foo".split("o",5);
split()对给定的字符串,从左往右依次查找regex,第一次找到后:删除该regex,并将字符串划分为两个子串(子串可以为空)。
查找到一个regex就做一次分割,limit对分割次数进行限制。
一般用法:String[] arr = "11,22,33,44,55".split(",");
特殊用法:String[] arr = "abcdsss".split(""); //regex为空,将字符串转换为字符数组。regex也可为空格“ ”,对一句英语拆分成单词。
注意:一些特殊字符需要转义,例如", * + | "需要在前面加上"\\","\"需要写成"\\\\";另外,如果分隔符有多个,那么就需要使用'|',如str.split("-|#");就是将str按照‘-’和‘#’进行分割。
2. int indexOf(String str,int startIndex)
参数String str可换成Char ch,也可换成字符串变量,表示欲匹配的子串或字符。
参数int startIndex可省,表示从哪个索引处开始检索(包括该索引处)。
描述:返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始(如果有第二个参数的话)。
一般用法:int index = “asdZTuwuw”.indexOf("ZT");
3. int lastIndexOf(String str, int startIndex)
描述:返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
4. boolean equals(Object obj)
描述:将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
相关方法: 描述:
boolean equalsIgnoreCase(String) 忽略大小写的equals()
booleanstartsWith(String,index) 判断字符串从index处开始是否以参数为前缀
boolean endsWith(String,index) 判断字符串从index处开始是否以参数为后缀
5. String substring(int sartIndex,int endIndex)
描述:(含头不含尾)返回一个新字符串,其长度为endIdex-startIndex。
注意:当 startIndex>endIndex 或者 startIdex<0 或者 endIndex>字符串长度 或者 startIndex>字符串长度 时,抛出异常:IndexOutOfBoundsException。
例如: "hamburger".substring(4, 8) returns "urge"
6. String trim()
描述:返回一个字符串的副本,不包含原字符串的开头和末尾的空白。(如果字符串的开头和末尾没有空白,则返回原字符串)
7. int compareTo(String anotherString)
比较两个字符串,有三种情况:
①一者是另一者的开头一段,此时返回字符串长度差值:this.length()-anotherString.length()
②双方均不是对方的开头一段,此时返回第一次出现不同字符的字符差值:this.charAt(k)-anotherString.charAt(k)
③当且仅当二者完全相同时,返回0.
相关方法: 描述:
int compareToIgnoreCase() 忽略大小写的 compareTo()
8. String replace(old, new)
描述:返回一个新的字符串,将原字符串中的old替换为new(参数可以是Char,也可以是CharSequence)
例如:String newStr = "aaa".replace("aa",'b'), 执行结果:newStr = "ba"
相关方法: 描述:
replaceAll(String regex, String new) 对原字符串中所有符合 regex 的,使用 new 进行替换。
replaceFirst(String regex, String new) 对原字符串中第一个符合 regex 的,使用 new 进行替换。
9. 字符串转换
相关方法: 描述:
String toUpperCase() 将字符全部转化为大写
String toLowerCase() 将字符全部转化为小写
String toString() 返回字符串
Char[] toCharArray() 返回字符串所对应的字符数组
10. char charAt(int index)
描述:返回指定索引处的字符。
11. String valueOf()和String toString()
描述:二者均是将对象转化成字符串。
差异:toString()在对null做转换时,会报异常;
valueOf()是对toString()的封装,会先对参数是否为NULL做判断,是null就返回字符串"null",不会抛异常。
public staticString valueOf(Object obj){return (obj == null) ? "null":obj.toString();
}
int i = 10;
String str= String.valueOf(i);
12. put
13. parse
14.
二、数组 [ ]
1. static List Arrrays.asList()
描述:将数组转化为 List,参数为数组。对转化前后任何一方的修改均会同步到另一方(二者均是引用的一个东西)。
注意:该方法将生成一个新的 List ,不会对原数组造成影响。
List list = Arrays.asList("Monday","Tuesday","Friday");//list1.size()=1,把data1当成1个元素(所以应该使用封装类型)//sop(data1.equals(list1.get(0)));输出为true
//Integer[] data1 = new Integer[]{1,2,3,4,5};
Integer[ ] data1 = {1,2,3,4,5};
List list1=Arrays.asList(data);//list2.size()=5,把data2当成5个元素
int[] data2 = {1,2,3.4.5};
List list2= Arrays.asList(data2);
Arrays.asList()返回的对象并不是传统意义上的集合,而是该工具类的静态私有内部类,该类没有提供add()和remove()方法,所以如果数组在转换后要求长度可变,则不能使用asList()方法。
2. public static void arraycopy(Object src,int srcIndex,Object target,int targetIndex,int length)
描述:System提供的一个静态方法,用以实现数组间的复制。从源数组src的srcIndex索引处开始取值,从目标数组的targetIndex索引处开始赋值,复制的长度为length。
int[] arr1 = {1,2,3,4};int[] arr2 = new int[arr1.length];
System.arraycopy(arr1,0,arr2,0,arr1.length);
注意:① 如果arr1是double型,arr2是int型,即赋值过程有数据类型转换出现,则结果为:仅对格式相同的进行复制,格式不同的不转换也不复制。
②数组间的复制,有时不能简单的使用等号 ‘a=b’ ,这种赋值只是将b的引用赋值给a。
3. static int[] copyOf(int[] arr,int length)
描述:复制指定的数组arr,返回一个新的数组,当新数组的长度length超出arr.length时,超出位置保留初始值(int型数组的初始值为0)。
int[] arr1 = {1,2,3,4};int[] arr2 = Arrays.copyOf(arr1,arr1.length);
4. static void Arrays.sort( 数组 )
描述:对数组按照升序进行快速排序,是在原数组上进行排序,不会生成新的数组。
注意:需要导入java.util.Arrays
另外该方法还可以对实现了Comparator接口的类的对象进行排序。
//数值型数组,升序
int[] arr = new int[]{1,8,2,3,7,4};
Arrays.sort(arr);//字符型,先大写后小写
String[] strArray = new String[]{"s","A","b"};
Arrays.sort(strArray);
5. 打印数组
数组不同于List,不能使用数组名直接进行打印,而List则可以,所以当需要打印数组的时候,可以先使用 Arrays.asList() 进行转换。
int[] data = new int[]{1,2,3,4,5,6};
System.out.println(Arrays.asList(data));
三、列表 List
List可细分为ArrayList、LinkedList、Vector
四、栈 Stack
1. 基本使用
importjava.util.Stack;
Stack stack = new Stack();//1. 入栈
stack.push(5);//2. 出栈:出栈操作前,最好先对栈进行非空判断
stack.pop();//3. 返回但不弹出栈顶元素
stack.peek();//4. 对栈进行非空判断
stack.empty();
stack.isEmpty();
1.1 empty() 和 isEmpty() 的区别:
empty():栈自己的方法,用以测试“栈是否为空”。
isEmpty():栈继承自java.util.Vector的方法,用以“测试此向量是否不包含组件”。
总结:二者来源不同,单就Stack而言,二者功能相同,可以互换。