Java学习第13天--StringBuffer

一、短串在长串中出现的次数练习

短串在长串中出现的次数例:String str = "10abc111ababb"; 求"ab"出现的次数 使用startsWith方法。

package com.nim13;

//String src = "10abc111ababb";求"ab"出现的次数 提示:使用startsWith方法
public class StringDemo5 {

	public static void main(String[] args) {

		String src = "10abc111ababb";
		// 计数器,统计ab出现的次数
		int count = 0;
		// 循环判断截取后的子串是否以给定的字符串开头,有就证明出现了一次给定字符串
		while (src.length() != 0) {
			if (src.startsWith("ab")) {
				count++;
			}
			// 从第二个字符开始截取子串
			src = src.substring(1);
		}
		System.out.println(count);
	}

}

改进上述统计短串在长串中出现的次数的方法

package com.nim13;

//String src = "10abc111ababb";求"ab"出现的次数 提示:使用startsWith方法
public class StringDemo5 {

	public static void main(String[] args) {
		example2();
		// example1();
	}

	private static void example2() {
		String src = "10abc111a1111babb";
		// 计数器,统计子串出现的次数
		int count = 0;
		String sbs = "11";
		// 调用indexOf("")方法,返回子串在当前字符串中第一次出现的索引,如果没有返回-1
		while (src.indexOf(sbs) != -1) {
			count++;
			// 将出现的子串截取,子串第一次出现的索引+子串的长度
			src = src.substring(src.indexOf(sbs) + sbs.length());
		}
		System.out.println(count);
	}

	private static void example1() {
		String src = "10abc111ababb";
		// 计数器,统计ab出现的次数
		int count = 0;
		// 循环判断截取后的子串是否以给定的字符串开头,有就证明出现了一次给定字符串
		while (src.length() != 0) {
			if (src.startsWith("ab")) {
				count++;
			}
			// 从第二个字符开始截取子串
			src = src.substring(1);

		}
		System.out.println(count);
	}

}

抽取方法:把想抽取的方法选中,鼠标右键→Refactor→Extract Method...点击出来一个对话框取一个方法名(例:example1),点击OK。快速抽取出了一个方法。

快速调出修复栏:Ctrl+1

二、StringBuffer

1、StringBuffer:类似于String的字符缓冲区,是一个容器其内部维护了一个字符数组,用于存储字符

      StringBuffer可以对字符串内容进行增删,很多方法与String相同

     StringBuffer append(int x)//在末尾追加              StringBuffer insert(int off,String str)//指定位置

      append();方法

package com.nim.stringbuffer;

public class StringBufferTest {

	public static void main(String[] args) {
		//创建对象
		StringBuffer sb = new StringBuffer("abc");
		System.out.println(sb);
		//调用append方法在abc末尾加上123
		sb.append("123");
		System.out.println(sb);
	}

}

2、StringBuffer 和String的区别

扫描二维码关注公众号,回复: 3709783 查看本文章

3、Object类

(1)、equals

(2)、toString 

(3)、hashcode

4、StringBuffer 特有方法

StringBuffer delete(int start, int end)   注意位置区间的处理:包前不包后:[start,end)

package com.nim.stringbuffer;

public class StringBufferTest2 {

	public static void main(String[] args) {
		// StringBuffer delet(int start, int end)
		StringBuffer buff = new StringBuffer("abcdefgh");
	//	StringBuffer del = buff.delete(2, 4);
		buff.delete(2, 5);
		System.out.println(buff.toString());
	}

}

5、反转:将字符序列反转  StringBuffer reverse()

package com.nim.stringbuffer;

public class StringBufferTest2 {

	public static void main(String[] args) {
		StringBuffer buff = new StringBuffer("abcdefgh");
		buff.reverse();
		System.out.println(buff.toString());
	}

}

猜你喜欢

转载自blog.csdn.net/chengming320/article/details/81094349