-2
txtファイル内の同じ文字列の出現回数をカウントする必要があります。LinkedHashMapを使用した出現回数のカウント
私は何が出ていること
public class CountWords {
public File file;
public Scanner scan = null;
public LinkedHashMap<String, Integer> list = new LinkedHashMap<>();
public CountWords(String txt) {
file = new File(txt);
}
public void textEdit() {
try {
scan = new Scanner(file);
} catch (FileNotFoundException e) {
System.out.println("----");
}
while (scan.hasNextLine()) {
String line = scan.nextLine();
if(!list.containsKey(line))
list.put(scan.next(),1);
else {
list.put(line,list.get(line)+1);
}
}
scan.close();
}
public List<String> getResult(){
textEdit();
return list;
}
主が何らかの方法で変更すべきではないクラス(つまり、要件です) で、出力が理由です(入力と同じ順序でなければなりませんLinkedHashMapが使用されています)
public class Main {
public static void main(String[] args) throws Exception {
String fname = System.getProperty("user.home") + "/textforwords.txt";
CountWords cw = new CountWords(fname);
List<String> result = cw.getResult();
for (String wordRes : result) {
System.out.println(wordRes);
}
}
}
私は分かりません。
これはコンパイルできますか? getResultはListを返すよう宣言されていますが、LinkedHashMapを返しています。 – JimmyJames
@JimmyJamesいいえ これは私が混乱しているところです "Mainを変更しない"と "LinkedHashMapを使用しない"という要求があったので、何とかこの2つのものを接続する必要があります – Yun8483
リストはどのような文字列を返すべきですか? getResult() 'が含まれていますか?この仕様がありますか? – vanje