使用stringbuffer编写一个java程序,处理一篇文章中字符串中"我"出现过的次数。
下面展示一些 内联代码片
。
//StringBuffer
StringBuffer strb = new StringBuffer("hello,");
//追加字符串
System.out.print(strb.append("world!"));
//替换字符
strb.setCharAt(0, 'H');
System.out.print(strb);
System.out.print("\n");
//左闭右开
System.out.print(strb.replace(0, 5, "Hello!"));
//反转字符串
System.out.print(strb.reverse());
//删除字符串
System.out.print(strb.deleteCharAt(6));
System.out.print(strb.delete(2, 5));
首先需要读入这篇文章内容到一个StringBuffer中,可以使用如下方式:
// 例如读入一个txt文件,文件名为filename
File file = new File(filename);
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
String line;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append(System.lineSeparator()); // 行与行之间的分隔符
}
接着,可以通过indexOf和substring方法找到特定单词,这里以“我”为例:
String str = sb.toString();
int count = 0;
int index = str.indexOf("我");
while (index != -1) {
count++;
str = str.substring(index + 1);
index = str.indexOf("我");
}
System.out.println("出现次数:" + count);
这里使用了一个count变量来统计出现次数,每找到一次“我”,就将count加一。函数indexOf查找“我”第一次出现的位置,如果没有则返回-1;函数substring则从当前位置到下一个“我”位置之间的子字符串,每次将原字符串从下一个“我”开始重新设定,再次调用indexOf方法进行查找,直至没有“我”的位置为止。