计算文本文件中的字符并打印到文本文件

时间:2014-12-02 20:36:11

标签: java file-io counting

我想计算此文本文件中每个字母字符的数量,除非该行以“>”开头在这种情况下,它只会将该行写入文件。这就是我所拥有的,它不会编译,因为它显示“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

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