Java_常用对象_StringBuffer

12 篇文章 2 订阅

StringBuffer类的概述:

                  线程安全的可变字符序列

StringBuffer和String的区别:

                   String是一个不可变的字符序列

                   StringBuffer是一个可变的字符序列

StringBuffer类的常用方法:

         构造方法:

                            publicStringBuffer():无参构造方法

                            publicStringBuffer(int capacity):指定容量的字符串缓冲区对象

                            publicStringBuffer(String str):指定字符串内容的字符串缓冲区对象

         StringBuffer的方法:

                            public intcapacity():返回当前容量(理论值)

                            public int length():返回长度(字符数)


案例一:

public class Demo1_StringBuffer {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer();
		System.out.println(sb.length());//容器中的字符个数,实际值
		System.out.println(sb.capacity());//容器中的初始容量,理论值
		
		StringBuffer sb2 = new StringBuffer(10);
		System.out.println(sb2.length());
		System.out.println(sb2.capacity());
		
		StringBuffer sb3 = new StringBuffer("haha");
		System.out.println(sb3.length());
		System.out.println(sb3.capacity());
	}
}


添加功能:

         public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身

         public StringBuffer insert(intoffset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

 

案例二:

public class Demo2_StringBuffer {
	public static void main(String[] args) {
		demo1();
	}
	private static void demo1(){
		StringBuffer sb =new StringBuffer();
		StringBuffer sb2  = sb.append(true);
		StringBuffer sb3 = sb.append("HelloWorld");
		StringBuffer sb4= sb.append(100);
		
		System.out.println(sb.toString());
		//StringBuffer类中重写了toString的方法,显示的是对象中的属性值
		System.out.println(sb2.toString());
		System.out.println(sb3.toString());
		System.out.println(sb4.toString());
		
		
	}
}


删除功能:

public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身

public StringBuffer delete (int start ,int end):删除从指定位置开始到指定位置结束的内容,并返回本身。


案例三:

/**
 * StringBuffer的删除功能	
 * 		public StringBuffer deleteCharAt(int index)
 * 			删除指定位置的字符,并返回本身
 * 		public StringBuffer delete(int start, int index)
 * 			删除从指定位置开始到指定位置结束的内容,并返回本身
 */
public class Demo3_StringBuffer {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer();
		// sb.deleteCharAt(5);
		// 当缓冲区中这个索引上没有元素的时候就会报StringIndexOutOfBoundsException
		sb.append("HelloWorld");
		// sb.deleteCharAt(4);
		// System.out.println(sb);//HellWorld
		// sb.delete(0, 2);删除的时候包含头不包含尾
		// System.out.println(sb);//lloWorld
		// sb.delete(0, sb.length());//清空缓冲区,因为包含头不包含尾,最大索引为length-1
		// System.out.println(sb);
		sb = new StringBuffer();// 不能通过这种方式清空缓冲区,原来的会变成垃圾,浪费内存
		System.out.println(sb);

	}
}

替换和反转功能:

         替换功能:

                   public StringBufferreplace(int start , int end , String str):从start开始到end用str替换

         反转功能:

                   public StringBuffer reverse():字符串反转


案例四

public class Demo4_StringBuffer {
	public static void main(String[] args) {
		StringBuffer sb  = new StringBuffer("HelloWorld");
		sb.replace(0,3, "tao");
		System.out.println(sb);//taoloWorld
		StringBuffer sb2 = new StringBuffer("我爱Java!");
		sb2.reverse();
		System.out.println(sb2);//!avaJ爱我
	}
}

截取功能:

                   public Stringsubstring(int  start):从指定位置截取到末尾

                   public String substring(intstart ,int end):截取从指定位置开始到结束位置,包括开始位置,不包括结束位置

                   注意:返回值类型不再是StringBuffer本身

案例五:

//substring:均指定的是索引值,包含头不包含尾
public class Demo5_StringBuffer {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("woaijava!");
		String str = sb.substring(4);// 从指定位置开始截取到末尾
		System.out.println(str);// java!

		String str2 = sb.substring(4, 7);
		System.out.println(str2);// jav

	}
}

StringBuffer和String的相互转换:

                   A:String –StringBuffer

                            通过构造方法

                            通过append()方法

                   B:StringBuffer –String

                            通过构造方法

                            通过toString()方法

                            通过subString(0,length)

案例六:

public class Demo6_StringBuffer {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("HelloWorld");
		String s1 = new String(sb);// 通过构造将StringBuffer转换为String
		System.out.println(s1);// HelloWorld

		String s2 = sb.toString();// 通过toString方法将StringBuffer转换为String
		System.out.println(s2);//HelloWorld
		
		String s3= sb.substring(0,sb.length());//通过截取字符串将StringBuffer转换为String
		System.out.println(s3);//HelloWorld
	}
}

需求一:将数组中的数据按照指定的格式拼接成一个字符串

                     例:int[] arr  =  {1,2,3};

                     结果:”[1,2,3]”

public class Test1 {
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3 };
		System.out.println(arrToString(arr));

	}

	/*
	 * 将数组转换为字符串 1.返回值类型为String 2.参数列表int[]
	 */
	public static String arrToString(int[] arr) {
		StringBuffer sb = new StringBuffer();//创建字符串缓冲区对象
		sb.append("[");//将[添加到缓冲区
		
		for (int i = 0; i < arr.length; i++) {
			if(i==arr.length-1){
				sb.append(arr[i]).append("]");
			}else{
				sb.append(arr[i]).append(",");
			}
		}
		
		return sb.toString();
	}
}

需求二:将字符串反转

                   例:键盘录入“abc”

                   输出:“cba”

public class Test1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);// 创建 键盘录入对象
		String line = sc.nextLine();// 将键盘录入的字符存储在line中
		System.out.println(revString(line));

	}

	private static String revString(String line) {

		StringBuffer sb = new StringBuffer(line);// 将字符串转换为StringBuffer对象
		sb.reverse();//将缓冲区的内容反转
		
		return sb.toString();
	}

}



  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值