计算字符串中的字符出现次数

时间:2013-11-23 22:58:30

标签: java count output

我正在尝试打印多少字母“a”。 它一直给我0 ...任何帮助?

JFileChooser chooser = new JFileChooser();
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
    File myfile = chooser.getSelectedFile();
    try {

        Scanner in = new Scanner(myfile);
        String word = in.nextLine();
        int counter = 0;
        for (int i = 0; i < word.length(); i++) {
            if (word.charAt(i) == 'a') {
                counter++;
            }
        }

        System.out.println("# of chars: " + counter);
    } catch (IOException e) {
        System.err.println("A reading error occured");
    }
}

3 个答案:

答案 0 :(得分:2)

计算char出现次数的更简单(一行)方式是:

int count = word.replaceAll("[^a]", "").length();

这会将每个不是“a”的字符替换为空白 - 有效地删除它 - 留下一个只包含原始字符串的“a”字符的字符串,然后你得到它的长度。

答案 1 :(得分:1)

除了阅读文件的任何问题外,还可以尝试使用StringUtils countMatches。它已经在常见的语言中了,请注意使用它。

例如

int count = StringUtils.countMatches(word, "a");

答案 2 :(得分:0)

JFileChooser chooser = new JFileChooser();
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File myfile = chooser.getSelectedFile();
try {

    Scanner in = new Scanner(myfile);

    int counter = 0;
while(in.hasNextLine()){
 String word = in.nextLine();
    for (int i = 0; i < word.length(); i++) {
        if (word.charAt(i) == 'a') {
            counter++;
        }
    }
}

    System.out.println("# of chars: " + counter);
} catch (IOException e) {
    System.err.println("A reading error occured");
}
}