我想计算此文本文件中每个字母字符的数量,除非行以“>”开头,在这种情况下,它只会将该行写入文件。这是我的,它不会编译,因为它说“error: cannot find symbol
”,并指出在我的声明line.length
期间。计算文本文件中的字符并打印到文本文件
为什么不能正常工作?要读取
String line;
while ((line = br.readLine()) != null)
{
if (line.startsWith(">"))
{
line += "\t";
bw.write (line);
}
else
{
int aCounter=0;
int bCounter=0;
int cCounter=0;
for (int m=0; m < line.length; m++)
{
char letter = line.charAt(m);
switch (letter)
{
case 'A':
aCounter++;
break;
case 'B':
bCounter++;
break;
case 'C':
cCounter++;
break;
}
}
bw.write("A:" + aCounter + " B:" + bCounter + " C:" + cCounter);
}
文件样本:
这是一个程序,将计算字符数 abcdabcdababab
想程序输出:
这是一个程序,将统计字符 a:5 b:5 c:2 d:2
line.length()应该修复你的问题。此外,作为一个良好的JAVA练习,您可以使用hashmap来跟踪每个角色的数量。要确定您拥有的字符是否是字母字符,可以使用Character.isLetter(string.charAt(m))。请参阅此条目以获取更多详细信息:http://stackoverflow.com/questions/4047808/what-is-the-best-way-to-tell-if-a-character-is-a-letter-or-number- in-java-withou – 2014-12-02 20:50:32
做上面的HashMap思想也是避免创建26个不同变量的简单方法。从编码的角度(更多的变量意味着更多的混乱机会)和从懒惰的角度(大量输入,或大量的复制/粘贴/更改,从而产生更多的编码错误)创建多个变量是一个坏主意 – Xynariz 2014-12-02 21:08:08
谢谢您的帮助!它现在可以顺利运行和编译,但每个字母的计数都不正确。这是打印如:A:0 B:0 A:0 A:0 B:1 A:0 B:0 – 2014-12-02 22:14:11