嗨即時做一個任務,我需要從文件中使用掃描儀讀取文本。然後把它寫入一個循環中,該循環產生一個字符串數組並使用arrays.sort方法按字母順序對數組進行排序。之後它將數組打印到輸出文件。也必須在命令行上顯示。輸入文件上的句子是「是或不是那個問題」,它必須逐字逐個顯示在一行上。這是我迄今爲止,但排序方法不排序它只是讀數組?按字母順序從文本文件中排序數組然後輸出到另一個文件java
public static void main(String[] args) throws IOException {
try {
try (Scanner input = new Scanner(new File("input.txt"))) {
while (input.hasNextLine()) {
String[] str = {input.next().toString()};
Arrays.sort(str);
for (String stringArray : str) {
System.out.println(Arrays.toString(str));
}
}
}
} catch (Exception ex) {
}
}
萬一我可能沒有完全明白我在問什麼,這是關於完整程序最終要做什麼的說明。現在我只是試圖讓排序方法工作。
創建一個字符串數組來存儲從輸入文件中讀取的單詞。您可以假設輸入文件將包含10000個字或更少。
使用掃描儀讀取輸入文件。在循環的標題中,調用Scanner對象上的hasNext()方法。只要文件有更多的字符串並且數組沒有被填充,繼續循環。
在循環的主體中,調用Scanner對象上的next()方法。這個方法返回一個String。將其轉換爲小寫字母(有一種方法可以實現此功能 - 請參閱字符串的API),然後將小寫字母分配給字符串數組的一個元素。
當循環完成讀取文件時,調用方法Arrays.sort(...),將String數組作爲參數傳遞給此方法。
使用PrintWriter將排序數組的內容寫入另一個文件。您將需要使用循環來編寫數組的元素。在此循環中,編寫一些代碼以確保相同的單詞不會多次寫入輸出文件。使用變量保存已寫入文件的最後一個單詞。在你寫下一個單詞之前,把它和最後一個單詞進行比較,只有當它不同時才寫。
請提供示例輸入/輸出。目前你正在閱讀**每行**,然後對一個** singleton數組**進行排序(顯然什麼都不做),然後將該行寫回。 –