我想计算此文本文件中每个字母字符的数量,除非该行以“>”开头在这种情况下,它只会将该行写入文件。这就是我所拥有的,它不会编译,因为它显示“error: cannot find symbol
”并指向我的for-statement 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
答案 0 :(得分:4)
line.length()
的参数表示方法:
for (int m=0; m < line.length(); m++ )
答案 1 :(得分:1)
您必须与数组的length
属性和字符串的length()
方法混淆。必须使用()
(括号)访问这些方法,并且只能通过名称访问这些属性。
更新: 您需要初始化for循环上方的计数器。它们在循环的每次迭代中重置为0.
int Acounter=0;
int Bcounter=0;
int Ccounter=0;
这些应该在for循环之上。另一个建议是,在java变量中必须以小写字母开头(并且类应该以大写字母开头)。例如:ACounter
应为aCounter
。