有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用扫描仪或缓冲读取器读取输入文件,并统计输入文件中出现的所有特定字符

如何使用扫描仪或bufferedreader读取文件并计算文件中的所有字母“B”

现在我用扫描器读取文件,每次遇到“B”时,我都要计算一个int,为了检查字符串中的下一个字符,也要计算一个int,但它只对第一行有效,因为,当j达到13时,我得到一个越界异常(输入文件每行有13个字符,然后换行)

while (input.hasNext() == true) {
if (input.next().charAt(j) == 'B') {
b++;
}
j++;
}

我尝试过在空格上拆分,但它告诉我每次都有零个“B”,这是不正确的


共 (3) 个答案

  1. # 1 楼答案

    解决此问题的一个简单方法是设置扫描仪的分隔符:

    input.useDelimiter("");
    

    然后,每当下一个令牌等于“B”时,递增计数器:

    while (input.hasNext()) {
        if (input.next().equals("B"))
            b++;
    }
    
  2. # 2 楼答案

    我认为StringUtils.countMatches method是你想要的,你可以这样使用它:

    int occurences=0;
    while(input.hasNext())
    {
       String line=input.next();
       occurences+=StringUtils.countMatches(line, "B");
    }
    System.out.println("There are "+occurences+" occurences of the character B in the file.");
    
  3. # 3 楼答案

    static int count;
    while(input.hasNext())
    {
    String line=input.next();
    getCount(line);
    }
    
    private static int getCount(String line)
    {
    char[] arr=line.toCharArray();
    for(int i=0;i<arr.length;i++)
    {
    if(arr[i]=='B')
    count ++;
    }
    }
    

    最后,威尔伯爵。有“B”的总数