Java:计算文本文件中的字母数

时间:2014-12-01 15:54:14

标签: java count character

如何计算每封信的总数?我想我可以使用StringUtils.countMatches,但我不确定如何使用它。

另外,我是否需要在字符之间放置空格以便我的程序可以计算它们?如果是这样,这就是我所拥有的,它将无法运作:

添加空格的代码:

char ch;
ch = next().CharAt(0);

switch (ch) {

   case 'A': System.out.print ("A ");
             break;
   case 'B': System.out.print ("B ");
             break;
   case 'C': System.out.print ( "C ");
             break;
  }                       

非常感谢你!

1 个答案:

答案 0 :(得分:0)

最好的通用方法(我将让您确定准确的代码)是维护一个存储每个字符计数的数组。 Java中的char是一个16位无符号整数,这意味着您可以声明

int[] counts = new int[65536];

然后当你想注册一个字符c时,你可以

counts[(int) c]++;

为了获取单个字符,您可以逐行读取文件,然后浏览代表每一行的String并处理它:

for (int i=0; i<line.length(); i++) {
    counts[(int) line.getCharAt(i)]++;
}

然后最后你可以读出你的数组,以确定每个角色出现的次数。

从技术上讲,您不需要为(int)类型转换而烦恼,您只需编写

count[line.getCharAt(i)]++;

但如果您明确转换,可能会更清楚。