我應該對字符數組進行排序並按降序排列。但應該很簡單,我沒有得到我想要的輸出。互聯網上的所有解決方案都告訴我Arrays.sort可以使用,但是我應該使用其他方法嗎?或者我忽略了什麼?Arrays.sort不按預期工作
public class mainClassTextFile {
public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("file.txt");
String fileContents = "";
int i;
int loopcount = 0;
int count = 0;
while((i = fileReader.read())!=-1){
char ch = (char)i;
fileContents = fileContents + ch;
}
char[] ch=fileContents.toCharArray();
for(int n = 0; n < ch.length; n++) {
boolean addCharacter=true;
for(int t = 0; t < n; t++) {
if (ch[n] == (fileContents.charAt(t)))
addCharacter=false;
}
if (addCharacter) {
for(int j = 0; j < fileContents.length(); j++) {
if(ch[n]==fileContents.charAt(j))
count=count+1;
}
Arrays.sort(ch);
System.out.print(ch[n] + ": "+(count));
System.out.println();
count=0;
loopcount++;
}
}
}
}
的輸出被認爲是在文本,計數和分類的所有字符,然而,這是結果:
:3339
X:4
X:4
X:4
X:4
[:2
]:2
如果我// Arrays.sort(),然後我得到的文本文件中的所有字符計算正確,但他們既不是排序或降序排列!
你爲什麼在循環中調用'Arrays.sort()'? – NPE 2014-09-06 13:05:54
錯誤。我將它移動到我將fileContents傳遞給char數組的位置,但沒有區別 – user3628503 2014-09-06 13:09:35
這整個代碼真的很奇怪。那個'while'循環的目的是什麼?如果你只是想讀取文件,而不是使用'BufferedReader'.'readLine()'。另外'if(addCharacter)'塊應該在'for(int t = 0; t charCounter'字段:'對於「ch」中的每個字符:charCounter.put(char,charCounter.get(char)+ 1)'。 –
Tom
2014-09-06 13:31:47