String 常用方法
字符串操作在开发中占了很大的比重,所以掌控字符串的一些常用的方法是对程序员的基础是一个很好的检验。
1.length() 字符串的长度。
String a = "abc";
System.out.println(a.length()); // 结果为3
2.charAt() 截取一个字符串
String a = "abc";
system.out.println(a.charAt(0)); //结果为a
参数表示字符串的下表,如果参数的下标大于字符串数组的长度或小于。那么抛出数组下标越界异常。
3.getChars() 截取一段字符串,放在char数组里
String a = "abcdefg";
char[] b = new char[10];
a.getChars(0,3,b,0);// 从a里截取abc 包含开始下标,不包含结束下标,并且放在一个char数组里从下标0开始。
4.getBytes() 将字符串变成一个byte数组。
5.toCharArray() 将字符串变成字符数组。
6.equals()和equalsIgnoreCase();
字符串equals 先比较是不是同一个内存地址,再将字符串转化成字符数组逐个比较面值。
equalsignoreCase() 区别是后者不区分大小写。这个方法的实现可以研究一下,很有深意。
7.startsWith() 和endsWith() 判断字符串是否以特定的字符串开始和结束。
8.toUpperCase()和 toLowerCase(); 字符串转换为大小写。
9.concat() 连接l两个字符串。
将两个字符串连接起来生成一个新的字符串。
String a = "abc";
String b = "ab";
String c = "c";
System.out.println(a == (b.concat(c))); // false
10.trim(); 去掉字符串前后的空格,一般用于参数传递前处理。
11.subString(); 截取字符串
String a = "abc";
System.out.println(a.substring(0,1)); //a 包含开始下标,不包含结束下标。
12.indexOf() 和lastIndexOf(); 前者是查找字符串或字符串第一次出现的位置,后者是查找字符串或字符串最后出现的位置。
String a = "abca";
a.indexOf("a"); // 0
a.lastIndexOf("a") // 3
a.indexOf("abd"); // -1 //如果没有abd的字符串返回-1
13.compareTo() 和compareToIgnoceCase() 按照字典顺序比较两个字符串的大小。前者区别大小,后者不区分。实现了Compareable接口。
14.replace() 替换字符串
String a = "abc";
a.replace("a","A");
System.out.println(a.replace("a","A")); // Abc
15.split(str,index) // 按照特定的字符串将字符串转成一个字符串数组。
str 表示按照特定的字符返回一个字符串数组。
index 表示返回数组的大小。
16. contains() 是否包含一个特定的字符串返回true/false.
17.format 字符串格式化
String str = "a%sbc";
System.out.println(str.format(str,"1")); //a1bc 更多类型替换的模板参看
18.subSequence() 源码直接调用了substring方法,但是返回的结果是CharSequence对象 ,但是String实现了subSquence方法。所以返回了String.
19.intern() String.intern()是一个Native方法,底层调用C++的 StringTable::intern 方法,源码注释:当调用 intern 方法时,如果常量池中已经该字符串,则返回池中的字符串;否则将此字符串添加到常量池中,并返回字符串的引用。将出现频率高的字符串加入到常量池。