一、短串在长串中出现的次数练习
短串在长串中出现的次数例: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());
}
}