Java-初步认识-常用对象API(StringBuffer类-插入删除查找修改)

一.

说完了添加,现在说一下删除。用操作容器的方法进行删除的话,方法不外乎两个,要么是delete,要么是remove。

一般是delete.xxxx,或者是remove.xxxx。delete貌似包含头不包含尾。

DOS结果显示为ae。现在想要将字符串缓冲区里的内容全部删除,这个动作叫做清空缓存区。

缓冲区清空后,容器还在。也可以直接重新定义sb字符串缓冲区,(相当于重新定义了一个缓冲区,原先的缓冲区废弃了)

但是,比较起来还是delete方法比较靠谱。

除了删除方法,还有查找方法。想在缓冲区中查找一些东西出来,比如想要查角标上的位置的话,可以用下面的方法。这些都是和字符串一样的方法。

这缓冲区对象里面还有一个方法,叫做修改。

返回的还是当前缓冲区,

将1角标到3角标替换成自己需要的字符串。结果为anbae,这个也是尾部不变。很奇怪啊,看解释也没说尾数不能变化。

还有修改单个角标上的元素的方法,这个返回类型是void,不返回本类对象。

这里面还有一些其它的方法,展示一下,

表面意思看是设置长度,

这里sb.setLength(0)的动作和清空缓冲区是一个动作。如果设置成sb.setLength(10),除了原有的四个字符外,它会往剩下的位置中放入空字符。

还有reverse方法,就是倒过来打印输出字符串,就是反转。

package stringbuffer.demo;

public class StringBufferDemo {

	public static void main(String[] args) {
		/*
		 * StringBuffer:就是字符串缓冲区
		 * 用于存储数据的容器。
		 * 特点
		 * 1.长度是可变的
		 * 2.可以存储不同类型的数据。
		 * 3.最终要转成字符串进行使用。
		 * 4.可以对字符串进行修改
		 * 
		 * 既然是一个容器,应该具备什么功能呢?
		 * 1.添加:
		 * 		StringBuffer append(data):
		 * 		StringBuffer insert(index,data);
		 * 2.删除:
		 * 	StringBuffer delete(start,end):包含头,不包含尾
		 * 	StringBuffer  deleteCharAt(int index):删除指定位置的元素。
		 * 3.查找:
		 * 	char charAt(index);
		 * 	int indexof(string);
		 * 	int lastIndexof(string);
		 * 4.修改:
		 * 	StringBuffer replace(start,end,string);
		 * 	void setCharAt(index,char);
		 * 5.增删改查 c(create) U(update) R(read) D(dete)
		 * 	
		 * 
		 * StringBuffer();
		 * 线程安全。
		 * 
		 * 
		 */
		
//	bufferMethodDemo();
	bufferMethodDemo2();
		
	}

	public static void bufferMethodDemo2() {
		
		StringBuffer sb = new StringBuffer("abcdefgh");
		
		sb.delete(1, 3);//删除元素,包含头,不包含尾
		//清空缓冲区
//		sb.delete(0, sb.length());
		//sb = new StringBuffer//用这种方法清空内存,不合适,浪费内存
		System.out.println(sb);//adefgh
		
		sb.deleteCharAt(0);
		System.out.println(sb);//defgh
		
		sb.replace(0, 2, "gao");
		System.out.println(sb);//gaofgh
		sb.setCharAt(0, 'h');
		System.out.println(sb);//haofgh
		
		


	}

	public static void bufferMethodDemo() {
		//创建缓冲区对象。
		StringBuffer sb = new StringBuffer();
		
//		StringBuffer s1 = sb.append(4);
		
//		System.out.println(sb==s1);//true
		sb.append(4).append(false).append("haha");
		sb.insert(2, "搞");
//		sb.append(true);
		//缓冲区是存储数据的。用的话还需要转成字符串。
		System.out.println(sb);
		
	}

	
}


猜你喜欢

转载自blog.csdn.net/fighting_future/article/details/80472428