我正在尝试打印多少字母“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");
}
}
答案 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");
}
}