StringBuffer

Posted 薰衣草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringBuffer相关的知识,希望对你有一定的参考价值。

StringBuffer 是一个字符串缓冲区,是一个容器。

 

1.长度是可以变化的。

2.可以字节操作多个数据类型

3.最终会通过toString方法变成字符串

 

CURDcreat update read delete

 

1.存储

StringBuffer append():指定数据作为参数添加到已有数据的

结尾处

StringBuffer insert(index,数据):可以将数据插入到指定index位置。

2.删除

StringBuffer delete(int start,int end):删除缓冲区中的数据,包含start,不包含end

StringBuffer deleteCharAt(int index):删除指定位置的字符

3.获取

char charAt(int index)

int indexOf(String str)

int lastIndexOf(String str)

String substring(int start,int end)

int length()

4.修改

StringBuffer replace(int start,int end,String st);

void setCharAt(int index,char ch);

5.反转

StringBuffer reverse();

6.将缓冲区中的指定数据存储到指定字符数组中

void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

 

JDK1.5版本之后出现了StringBuilder

StringBuffer是线程同步

StringBuilder是线程不同步的

建议使用StringBuilder

 

升级三个因素:

1.提高效率

2.简化书写

3.提高安全性

 

 

public class StringBufferDemo 
	
	public static void main(String[] args)
		
		//method_add();
	//	method_del();
	//	method_update();
		
		StringBuffer sb = new StringBuffer("abcdefg");
		char[] chs = new char[6];
		sb.getChars(1,4,chs,1);
		
		for(int x = 0; x < chs.length; x++)
		
			sop("chs["+x+"] = "+chs[x]+";");
		
		
	
	
	public static void method_add()
	
		StringBuffer sb = new StringBuffer();
		
		sb.append("abc").append(12).append(false).append('g');
		sop(sb.toString());
	
	
	public static void method_del()
	
		StringBuffer sb = new StringBuffer("abcdef");
		
		sb.delete(1,3);
		//清空缓冲区
		sb.delete(0,sb.length());
		//删除单个字符
		sb.deleteCharAt(2);
		
		sop(sb.toString());
	
	
	public static void method_update()
	
		StringBuffer sb = new StringBuffer("abcdefg");
		
		sb.replace(1,4,"java");
		sb.setCharAt(2,'k');
		
		sop(sb.toString());
	
	
	public static void sop(String s)
	
		System.out.println(s);
	




//JDK1.5版本之后新特性
public class IntegerDemo 

	public static void main(String[] args)
	
		//Integer x = new Integer(4);
		Integer x = 4;	//自动装箱     //new Integer(4)
		
		x = x + 2;	//对象和整数运算。x+2:x进行了自动拆箱,变成了int类型,和2进行加法运算
					//再将和进行装箱赋给x.
		
		Integer m = 128;
		Integer n = 128;
		sop("m == n : "+(m == n));
		
		Integer z = 127;
		Integer y = 127;
		sop("z == y : "+(z == y));//结果为true,因为z和y指向了同一个Integer对象。
							//因为当数值在byte范围内时,对于新特性,如果该数值已经存在,则不会开辟新空间
		
		method();
	
	
	public static void method()
	
		Integer x = new Integer("123"); 
		Integer y = new Integer(123);
		
		sop("x == y : "+(x == y));
		sop("x == y : "+x.equals(y));
	
	
	public static void sop(String str)
	
		System.out.println(str);
	

运行结果:
m == n : false
z == y : true
x == y : false
x == y : true

以上是关于StringBuffer的主要内容,如果未能解决你的问题,请参考以下文章

Java (String类和StringBuffer)

Java基础之String类StringBuffer类StringBuilder类

理解StringStringBuilder和StringBuffer

StringBuffer和StringBuilder区别?

javascript 怎么输出指定输入范围内的质数

String,StringBuffer,StringBuilder区别