私は、txtファイルを読み込み、シンボル/文字/数字の頻度を数えるプログラムを作成しています。これまでは、HashMapを使ってこれらの値を保存し、スクリーンにそれらをアルファベット順に印刷しました。カウント文字のバグ
私はキーを昇順に印刷していますが、リストの先頭に ':1'が表示されていますが、どこが間違っているのか分からないようです。
public class abc {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("C:\\random20000.txt"));
HashMap<Character, Integer> hmap = new HashMap<Character, Integer>();
String s = reader.readLine();
for (int i = 0; i < s.length(); i ++) {
char c = s.charAt(i);
Integer val = hmap.get(new Character(c));
if (val != null && c != ' ') {
hmap.put(c, new Integer(val + 1));
}
else {
hmap.put(c, 1);
}
}
reader.close();
System.out.println("Hash Map Before Sorting");
Set set = hmap.entrySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Map.Entry<Character, Integer> me = (Map.Entry<Character, Integer>)iterator.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
私はそれが(ヴァル!= nullを& & C!= '「)またはhmap.put(C、1)ラインのどちらかだ感じています。ここで
テキストファイルに改行やタブなどの空白文字はありますか? – mba12