1. 借助JDK文档, 选取String与StringBuffer 、StringBuilder的常用API,并编写实例测试API的功能。
1)String 的 length()
int length()
Returns the length of this string.
返回string的长度
char charAt(int index)返回值是char类型,参数是int,作用和C语言中字符串的下标取值一样,得到的是串中下标为index的字符
public class hello{ public static void main(String[] args){ String w=new String("nice to meet you"); System.out.println(w); int i; for(i=0;i<w.length();++i) System.out.print(w.charAt(i)+"#"); } } 输出: hello,nice to meet you h#e#l#l#o#,#n#i#c#e# #t#o# #m#e#e#t# #y#o#u#
2)StringBuffer的append(char[] str)
StringBuffer
append(char[] str)
Appends the string representation of the char array argument to this sequence.
返回一个StringBuffer 类型。
将括号里的字符串加到原字符串后面
3)StringBuilder的append(char[] str)
StringBuilder append(char[] str)
Appends the string representation of the char array
argument to this sequence.
同.StringBuffer的append(char[] str)
public class hello{ public static void main(String[] args){ StringBuffer w=new StringBuffer("Nice to Meet You"); System.out.println(w); System.out.println(w.append(" too"); } } 输出: Nice to Meet You Nice to Meet You too
2. 请简述String,StringBuffer,StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
String、StringBuffer、StringBuilder相同点 :
内部实现基于字符数组,封装了对字符串处理的各种操作
可自动检测数组越界等运行时异常
String、StringBuffer、StringBuilder不同点:
String内部实现基于常量字符数组,内容不可变;StringBuffer、StringBuilder基于普通字符数 组,数组大小可根据 字符串的实际长度自动扩容,内容可变
性能方面,对于字符串的处理,相对来说 StringBuilder > StringBuffer > String
StringBuffer线程安全;StringBuilder非线程安全
3. 为什么不建议在for循环中使用“+”进行字符串拼接?
字符串拼接,应使用StringBuilder或StringBuffer,并将对象创建语句放到 循环体外。