Java工具类-StringBuffer类

涎涎原创约 679 字大约 2 分钟...JavaJava

218-Java工具类-StringBuffer类.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

概念

示例代码

package com.tencent.chapter01.String类;

public class StringBufferDemo {

	public static void main(String[] args) {
		/**
		 * 1.创建对象
		 */
		//构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符
		StringBuffer sb = new StringBuffer();
		
		//构造一个不带字符,但具有指定初始容量的字符串缓冲区
		StringBuffer sb2 = new StringBuffer(70);
		
		// 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
		StringBuffer sb3 = new StringBuffer("abc");
		
		/**
		 * 2.常用方法
		 */
		//capacity() 查看字符串缓冲区的容量
		System.out.println("容量:" + sb.capacity());//16
		System.out.println("容量:" + sb2.capacity());//70
		System.out.println("容量:" + sb3.capacity());//19
		
		//append() 追加字符串
		//sb = sb + "123" + "true";//String类型字符串拼接方式
		sb.append("123").append(true).append("中文");
		System.out.println(sb);//123true中文
		
		String str = "----"; //不可变
		str.concat("123").concat("true").concat("中文");
		System.out.println(str);//----
		
		//delete(start,end) 删除指定区间的字符,不包括结束位置
		sb.delete(3, 7);
		System.out.println(sb);//123中文
		
		//deleteCharAt(index) 删除指定下标位置的字符
		sb.deleteCharAt(2);
		System.out.println(sb);//12中文
		
		//insert(offset,element) 在指定位置新增一个元素
		sb.insert(0, "新增");
		System.out.println(sb);//新增12中文
		
		//replace(start,end,string) 用指定string替换start~end区间的值
		sb.replace(0, 2, "add");
		System.out.println(sb);//add12中文
		
		StringBuffer tele = new StringBuffer("13312347890");
		tele.replace(3, 7, "****");
		System.out.println(tele);
		
		//reverse() 颠倒字符串
		//sb.reverse();
		//System.out.println(sb);//文中21dda
		
		//setCharAt(index,char) 将index位置的字符替换为char 
		sb.setCharAt(0, 'o');
		System.out.println(sb);//odd12中文
		
		//toString() StringBuffer -> String
		System.out.println(sb.toString());
		
		/**
		 * 想要判断两个StringBuffer变量的内容是否相等,应先用toString()将他们转换成String对象
		 */
		StringBuffer sb4 = new StringBuffer("abc");
		StringBuffer sb5 = new StringBuffer("abc");
		
		System.out.println(sb4 == sb5);     //false 比较地址值
		System.out.println(sb4.equals(sb5));//false 没有重写Object的equals,所以默认还是比较地址值
		
		//StringBuffer -> String之后再比较
		String str4 = sb4.toString();
		String str5 = sb5.toString();
		
		System.out.println(str4 == str5);    //false 比较地址值
		System.out.println(str4.equals(str5));//true 先比较地址值,再比较字面值
		
		/**
		 * String与StringBuffer的区别:
		 * 		相同点:
		 * 			1.都是表示字符序列
		 *          2.都属于java.lang包中的类,不需要导入包
		 * 
		 * 	           不同点:
		 * 			1.String是不可变的字符序列
		 * 			2.StringBuffer是可变字符序列
		 * 			3.StringBuffer节省内存开销
		 */
		String str6 = "abc";
		str6 = str6 + "123";//abc123
		str6 = str6 + "true";//abc123true
		
		//abc  abc123  abc123true
		
		StringBuffer sb6 = new StringBuffer("abc");
		sb6.append("123");//abc123
		sb6.append("true");//abc123true
		
		//abc123true
	}
}

分割线


相关信息

以上就是我关于 ** 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4