我有兩個嵌套循環,外面的一個從字母表(A-Z)的數組中讀取並將其與從文件中讀取的字符進行比較。它應該寫入一個不同的文件從字母表中的字母和它在文件中提到的次數。所以就是這樣:爲什麼我的外循環不會增加到數組的下一個元素?
for(int i = 0; i<alph.length; i++)
{
int count = 0;
for(;;)
{
try {
c = reader.read();
} catch (IOException e) {
e.printStackTrace();
}//end of catch
if(c==-1)
break;
if(alph[i] == (char) c)
{
count++;
}
}//end of endless loop
writer.println(alph[i] + " " + count);
}//end of alphabet loop
它讀取的文件包括短語「JAVA STALE GUIDELINES」。並且它讀取A被提及3次並寫入罰款。但是,它不會轉到下一個字母和後面的字母等等。
到達該位的信只是一個:
if(alph[i] == (char) c)
{
count++;
}
其他所有字母寫入0
這是最終的結果:
A 3 乙0 C 0 D 0 E 0 F 0 G 0 H 0 I 0 Ĵ0 ķ0 L 0 G 0 N 0 Ø0 P 0的 Q 0 ,R 0 秒0 Ť0 U 0 -V 0 W 0 X 0 ÿ 0 Z 0
因爲您在外部循環中迭代字母,並在內部循環中讀取x個字符。一旦你完成了'A',輸入文件在EOF,你的程序退出。 – Robert