查询出现的次数,用stringbiffer

使用stringbuffer编写一个java程序,处理一篇文章中字符串中"我"出现过的次数。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/740829
  • 这篇博客也不错, 你可以看下JAVA基础(StringBuffer数组转成字符串)
  • 除此之外, 这篇博客: Java字符串——查找、替换和StringBuffer类的常用方法中的 StringBuffer类的常用方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 下面展示一些 内联代码片

    //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));
    
  • 您还可以看一下 张晨光老师的JAVA 编程开发入门课程中的 String类和StringBuffer类的区别小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    首先需要读入这篇文章内容到一个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方法进行查找,直至没有“我”的位置为止。