StringBuffer类

StringBuffer类的构造方法和length·capacity方法

package com.heima.stringbuffer;

public class Demo1_StringBuffer {
/*
 * StringBuffer类的构造方法
 * 		public StringBuffer()无参构造方法
 * 		public StringBNuffer(int capacity)指定容量的字符串缓冲区对象
 * 		public StringBUffer(Stirng Str)指定字符串内容的字符串缓冲区对象
 * StringBUffer的方法
 * 		public int capacity()返回当前容量	理论值(理论值)
 * 		public int length()	返回当前长度    	实际值
 * 案例演示
 * 		构造方法和长度方法的使用
 * */
	public static void main(String[] args) {
		StringBuffer sb=new StringBuffer();
		System.out.println(sb.length());		//结果是0,但是根据api上说,应该有16个处室容量,那么从哪里可以看出来呢
		System.out.println(sb.capacity());		//结果是16,length是长度。length是实际值(字符串个数),capacity是理论值
		
		StringBuffer sb2=new StringBuffer(10);
		System.out.println(sb2.length());
		System.out.println(sb2.capacity());//length还是0,因为没有字符串,而capacity是10,因为初始化10个容量
		
		StringBuffer sb3=new StringBuffer("heima");
		System.out.println(sb3.length());
		System.out.println(sb3.capacity());//length是5,capacity是21.capacity的值是字符串的length加上初始容量
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

StringBuffer类的append方法和insert方法

package com.heima.stringbuffer;

public class Demo2_StringBuffer {
/*
 * StringBuffer的添加功能
 * 		public StringBuffer append(String str)把任意类型数据添加到字符串缓冲区里,并返回字符串缓冲区本身,
 * 												这是一个重载的方法,所有数据类型都可以添加
 * 		public StringBuffer insert(int offset,String str)在指定位置把任意类型数据添加到字符串缓冲区里,并返回字符串缓冲区本身
 * 												这是一个重载的方法,所有数据类型都可以添加
 * */
	public static void main(String[] args) {
		demo1();//append方法的demo
        demo2();//insert方法的demo
	}

private static void demo2() {
	//		StringBuffer sb=new StringBuffer();
	//		sb.insert(3, "heima");
	//		System.out.println(sb);//出现了字符串索引越界异常,因为并没有3这个索引
			StringBuffer sb=new StringBuffer("1234");
			sb.insert(3, "heima");	//这就是在指定位置添加,如果没有在指定位置的索引,就会报索引越界异常
			System.out.println(sb);//结果是123heima4
}

private static void demo1() {
	StringBuffer sb=new StringBuffer();
	//System.out.println(sb);//控制台没有结果,实际上这个语句相当于以下
	System.out.println(sb.toString());//因为控制台是空的 ,所以StringBUffer一定是重写了toString方法
	StringBuffer sb2=sb.append(true);
	StringBuffer sb3=sb.append("heima");
	StringBuffer sb4=sb.append(100);
	System.out.println(sb.toString());
	System.out.println(sb2.toString());//String Buffer类中重写了toSting方法,显示的是对象中的属性值
	System.out.println(sb3.toString());
	System.out.println(sb4.toString());
	/*
	 * 以上的输出的结果都是trueheima100,为什么?
	 * 		因为四个引用指向同一个对象
	 * 		StringBuffer是字符串缓冲区,在new的时候在对内存创建了一个对象,底层是一个长度为16的对象
	 * 			当调用方法时,不会创建新的对象,只会不断在原来缓冲区添加字符
	 * */
}

}

StringBuffer的删除功能

package com.heima.stringbuffer;
/*
 * StringBuffer的删除功能
 * 		public	 StringBuffer deleteChartAt(int index)
 * 				删除指定位置字符,并返回本身
 * 		public StringBuffer delete(int start,int end)
 * 				删除开始位置到结束位置内容,并返回本身
 * */
public class demo_StringBufferDelate {

	public static void main(String[] args) {
//		StringBuffer sb=new StringBuffer();
//		sb.deleteCharAt(5);				//5索引上没有元素,出现索引越界异常
		StringBuffer sb=new StringBuffer();
		sb.append("heima");
		sb.deleteCharAt(4);
		System.out.println(sb);//删除索引4处的a
		sb.append("jjjjjjjj");
		System.out.println(sb);
		sb.delete(0,2);
		System.out.println(sb);//删除的时候是包含头不包含尾
		//清空缓冲区
		sb.delete(0,sb.length());
		System.out.println(sb+"0000");
		sb=new StringBuffer();//不要用这种方式清空缓冲区,原来的会变成垃圾,浪费内存
		
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

StringBuffer的替换和反转

package com.heima.stringbuffer;

public class demo4_StringBuffer {
/*
 * StrngBuffer的替换功能
 * 		public StringBuffer replace(int start,int end,String str)
 * 			从start开始到end结束用str替换
 * StringBuffer的反转功能
 * 		public StringBuffer reverse();
 * 			字符串反转
 * */
	public static void main(String[] args) {
		StringBuffer sb=new StringBuffer("heima");
		sb.replace(0, 3, "baidd");
		System.out.println(sb);
		sb.reverse();
		System.out.println(sb);
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

StringBuffer的截取功能和注意事项

package com.heima.stringbuffer;

public class Demo5_StringBuffer {
/*
 * StringBuffer的截取功能
 * 		public String substring(int start)
 * 			从指定位置截取到末尾。
 * 		public String substring(int start,int end)
 * 			指定截取的开始和结束为止,不包括结束位置
 * 注意事项
 * 		返回值类型不再是StringBuffer本身
 * */
	public static void main(String[] args) {
		StringBuffer sb=new StringBuffer("woaiheima");
		String str=sb.substring(1);
		System.out.println(str);
		System.out.println(sb);//sb的值没有改变
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

StringBuffer和String的相互转换

package com.heima.stringbuffer;
/*
 * String转换成StringBuffer
 * 		1.通过构造方法
 * 		2.通过append方法
 * StringBuffer转换成String、
 * 		1.通过构造方法
 * 		2.通过tostring方法
 * 		3.通过substring(0,length)
 * */
public class demo6_StringBuffer {
		public static void main(String[] args){
			string转换成StringBuffer();
			stringbuffer转换成string();
	}

		private static void stringbuffer转换成string() {
			StringBuffer sb=new StringBuffer("heima");
			String s1=new String(sb);
			System.out.println(s1+sb);
			String s3=sb.substring(0, sb.length());
			System.out.println(s3);
		}

		private static void string转换成StringBuffer() {
			StringBuffer sb1=new StringBuffer("heima");//这是通过构造方法转换,将字符串转换成StringBuffer对象
			System.out.println(sb1);
			
			StringBuffer sb2=new StringBuffer();
			sb2.append(true);
			System.out.println(sb2);					//通过append方法将字符串转换成StringBUffer对象
		}
}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

把数组转换成字符串

package com.heima.test;

public abstract class Test_shuzuzhuanhuan {
//把数组中的数据按照指定格式拼接成字符串
	public static void main(String[] args) {
		int[] arr={1,2,3};
		System.out.println(arrayToString(arr));
	}
	public static String arrayToString(int[] arr){
		StringBuffer sb=new StringBuffer();//创建字符串缓冲区对象
		sb.append('[');				//将【添加到缓冲区
		for(int i=0;i<arr.length-1;i++){
			
			sb.append(arr[i]);
			sb.append(',');
		}
		sb.append(arr[arr.length-1]);
		sb.append(']');
		return sb.toString();
		}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

字符串反转(不抽取方法)

package com.heima.test;

public abstract class Test_shuzuzhuanhuan {
//把数组中的数据按照指定格式拼接成字符串
	public static void main(String[] args) {
		int[] arr={1,2,3};
		System.out.println(arrayToString(arr));
	}
	public static String arrayToString(int[] arr){
		StringBuffer sb=new StringBuffer();//创建字符串缓冲区对象
		sb.append('[');				//将【添加到缓冲区
		for(int i=0;i<arr.length-1;i++){
			
			sb.append(arr[i]);
			sb.append(',');
		}
		sb.append(arr[arr.length-1]);
		sb.append(']');
		return sb.toString();
		}

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值