我想計算此文本文件中每個字母字符的數量,除非行以「>」開頭,在這種情況下,它只會將該行寫入文件。這是我的,它不會編譯,因爲它說「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