java可变字符串

一、常用方法 以StringBuilder为例

1、append(String str) 添加

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
		
//在源字符串后添加world
StringBuilder add = str.append("world");
System.out.println(add);//结果helloworld

2、insert(int offset, String str),例如insert(2,"吖吼"),在索引号2的位置插入字符串''吖吼''

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//在字符串索引值为2即第三个字符插入"吖吼"
StringBuilder ins = str.insert(2,"吖吼");
System.out.println(ins);//结果是he吖吼llo

3、delete(int start, int end),[开始位置,结束位置)-->前闭后开,要头不要尾

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//删除字符串索引值为2、3的字符
System.out.println(str.delete(1,3));//结果是hlo

 4、deleteCharAt(int index)删除指定字符

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//删除字符串第二个字符
System.out.println(str.deleteCharAt(1));//结果是hllo

5、setCharAt(int index, char ch)指定字符修改

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//修改字符串第一个字符为'g'
str.setCharAt(0, 'g');//没有返回值
System.out.println(str);//结果是gello

6、charAt(int index)查询字符

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//查询索引号为0的字符
System.out.println(str.charAt(0));//结果为h

7、reverse()字符串反转

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//反转字符串
System.out.println(str.reverse());//结果为olleh

8、replace(int start, int end, String str)替换字串,替头不替尾

StringBuilder str = new StringBuilder("hello");
System.out.println(str);
//替换前两个字符为666
System.out.println(str.replace(0,2,"666"));//替头不替尾,结果是666llo

java可变字符串_第1张图片

起初计算机操作字符串,要求稳,StringBuffer支持多线程操作,这个字符串可能被好多个任务同时进行操作,例如A线程要改为“asd”B现成要改为“vbn”,会出现一些错乱问题,而StringBuffer牺牲了些性能,去协调多线程,保证线程安全,数据不丢失不发生错乱。如果不需要多线程,单线程下可以用StringBuilder,快一些

二、String 和 StringBuilder 性能比较

字符串拼接所需时间为例,进行比较

String所需时间

 

public class StringXn {
	public static void main(String[] args) {
		String str ="";
		long start = System.currentTimeMillis();//获取当前毫秒级时间
		for(int i = 0;i<1000000;i++) {
			str +="第"+i+"元素";//循环拼接字符串
		}
		long end = System.currentTimeMillis();//拼接结束时的时间
		System.out.println("String需要的时间为"+(end-start)+"毫秒");//字符串拼接需要的时间
	}

}

 StringBuilder所需时间

 

public class StringBuilderXn {
	public static void main(String[] args) {
		StringBuilder str = new StringBuilder("");
		long start = System.currentTimeMillis();
		for(int i = 0;i<1000000;i++) {
			str = str.append("第").append(i).append("元素");
		}
		long end = System.currentTimeMillis();
		System.out.println("StringBuilder需要的时间为"+(end-start)+"毫秒");
	}

}

你可能感兴趣的:(java,java,前端,html)