1 String对象不可变 每一个修改String值的方法 实际上都是创建一个全新的String对象
public class Immutable { public static String upcase(String s) { return s.toUpperCase(); } public static void main(String[] args) { String q = "howdy"; System.out.println(q); String qq = upcase(q); System.out.println(qq); System.out.println(q); } }
2 StringBuilder JavaSE5引入
StringBuffer 线程安全
public class UsingStringBuilder { public static Random rand = new Random(47); public String toString() { StringBuilder result = new StringBuilder("["); for(int i = 0; i < 25; i++) { result.append(rand.nextInt(100)); result.append(", "); } result.delete(result.length()-2, result.length()); //去掉start到end的字符串 result.append("]"); return result.toString(); } public static void main(String[] args) { UsingStringBuilder usb = new UsingStringBuilder(); System.out.println(usb); } }
3 toString方法
4 String 操作
length() //字符个数
charAt() //该索引位置上的char
getChars() getBytes() //复制
toCharArray() //转char[]
equals() equalsIgnoreCase() //比较是否相同
compareTo() //按词典顺序比较
contains() //包含
contentEquals() //比较
regionMatcher()
startsWith() //可能的起始String
endsWith() //可能的后缀String
indexOf() lastIndexOf()
substring()
concat()
replace()
toLowerCase()
toUpperCase()
trim() //讲String两端的空白字符删除
valueOf()
intern()
5 格式化输出
Formatter
6 正则表达式