您的位置:首页 > 产品设计 > UI/UE

【学习总结】java高级特性之String、StringBuffer、StringBuilder

2016-12-21 12:35 639 查看
1.String:java中字符串值属于String类,java编译器把字符串值作为String对象;但String对象一旦创建就不能改变,如果需要进行大量的字符串操作,应该使用StringBuffer/StringBuilder类或者字符数组,最终可以被转换成String对象。

2.StringBuffer:线程安全的可变字符序列;一个类似于String字符串缓冲区,通过某些方法调用可以改变字符串的长度和内容;每个字符串都有缓冲区,只要字符串缓冲取包含的字符序列没有超出此容量。就无序分配新的内部缓冲区数组;如果缓冲区溢出,则此容量自动增大。缺点:操作速度比较慢。

常用方法代码:

//弱点:线程是安全的,但底层操作速度比较慢
StringBuffer buffer = new StringBuffer("abcde");
System.out.println(buffer);
//拼接
buffer.append("+edbca");
System.out.println(buffer);
//截取字符串
System.out.println(buffer.substring(1, 4));
//取索引位置字符
System.out.println(buffer.charAt(1));3.StringBuilder:JDK5以后,为StringBuffer补充了一个单个线程使用的等价类,即,StringBuilder,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度快。
常用方法代码:

//StringBuilder对象
StringBuilder builder = new StringBuilder("aaaaa");

//拼接字符串
System.out.println(builder.append("+bbbbb"));

//截取字符串
System.out.println(builder.substring(4,8));

//取字符索引位置字符
System.out.println(builder.charAt(8));

//字符串长度
System.out.println(builder.length());

//返回当前容量
System.out.println(builder.capacity());

//移除指定范围的字符串,包头不包尾
System.out.println(builder.delete(0, 6));

//移除指定索引处的字符串
System.out.println(builder.deleteCharAt(0));

//将指定字符插入
System.out.println(builder.insert(1, "abc"));

//替换字符串
System.out.println(builder.replace(1, 4, "def"));

//转换成字符串
System.out.println(builder.toString());

//返回此字符串的指定子字符串中第一个出现的索引(indexOf/lastIndexOf)
System.out.println(builder.indexOf("e"));
具体介绍详见JDK API文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  高级特性