【Java学习日记】#4 字符串生成器

字符串生成器

创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。
虽然使用“+”可以达到附加新的字符或者字符串的效果,但是会创建一个新的字符串,多占用系统内存。
Sting-Builder
可以大大提高频繁增加字符串的效率

		String s = "";	//创建空字符串
		long starTime = System.currentTimeMillis();
		for(int i=0;i<10000;i++) {
			s=s+i;
		}
		long endTime = System.currentTimeMillis();
		long time = endTime - starTime;
		System.out.println("String消耗时间:"+time);
		//创建字符串生成器
		StringBuilder builder = new StringBuilder("");
		starTime = System.currentTimeMillis();
		for(int j=0;j<10000;j++) {
			builder.append(j);
		}
		endTime = System.currentTimeMillis();
		time = endTime - starTime;
		System.out.println("StringBuilder 消耗时间:"+time);

输出结果:

String消耗时间:89
StringBuilder 消耗时间:1

(1)append(content)
向字符串后追加内容
content可以接受任何类型的数据
int、boolean、char、String、double、另一个字符串生成器

		StringBuilder s = new StringBuilder("I am good.");
		//Boolean
		boolean b = true;
		s.append(b);
		System.out.println(s.toString());
		//int double等
		int i = 123;
		s.append(i);
		System.out.println(s.toString());
		//char
		char c = 'w';
		s.append(c);
		System.out.println(s.toString());
		//String
		String s1 = new String(" Yes you are right! ");
		s.append(s1);
		System.out.println(s.toString());;
		//另一个字符生成器
		s.append(s);
		System.out.println(s.toString());;

输出结果:

I am good.true
I am good.true123
I am good.true123w
I am good.true123w Yes you are right!
I am good.true123w Yes you are right! I am good.true123w Yes you are right!

(2)insert(int offset, content)
向字符串生成器中的指定位置插入数据内容
offset 插入位置 从这个位置开始插入
content类型与上面相同

		StringBuilder s = new StringBuilder("I am good.");
		s.insert(5, "really ");
		System.out.println(s.toString());

(3)delete(int start, int end)
删除从start到end-1的字符
如果end-1处的字符不存在,则删除到字符串结尾

		StringBuilder s = new StringBuilder("I am good.");
		s.delete(2,4);
		System.out.println(s.toString());

输出结果:

I good.

猜你喜欢

转载自blog.csdn.net/BAOZEE/article/details/107550533