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

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文档。

你可能感兴趣的:(高级特征)