String,StringBuilder,StringBuffer
String
String 不是基本数据类型,Java中的所有字符串(例如"abc" )都被实现为此类的实例。
String对象是不可变的。
public boolean equals(Object anObject)
public char charAt(int index)
public int length()
public
String s = "hello"; // 在常量池中 创建了 “hello”
s += "world"; // 在常量池中 创建了 “world” ,“helloworld”
System.out.println(s); // 此时 s 指向 “helloworld” ,“hello” 和 “world” 都被浪费掉了。
对字符串进行拼接操作,每次拼接,都会创建新的String对象(字符串在java中都被认为是String对象),既耗时,又浪费空间。
StringBuilder
可变字符串,可以看成一个容器,可变指的是StringBuilder对象中的内容是可变的,在做拼接时,不会创建新的对象。
public StringBuilder(); // 创建一个空白可变字符串对象
public StringBuilder(String str);
String str = "ceshi";
StringBuilder sa = new StringBuilder(str);
// append()添加数据,返回对象本身
sa.append("hello").append("world").append("java").append(100);
System.out.println(sa);
// public StringBuilder reverse(); 返回相反的字符序列
sa.reverse();
System.out.println(sa);
StringBuilder 和 String 相互转换
// StringBuilder 转为 String
StringBuilder sb = new StringBuilder();
sb.append("[");
String s = sb.toString();
// String 转为 StringBuilder
StringBuilder s = new StringBuilder(String s)

浙公网安备 33010602011771号