paizaでの勉強記録です。
今回は下記のレベルアップ問題集のCランクの「単語のカウント」を実施しました。
ざっくりとしたイメージとしてはMapを用いて文字列と出現回数をカウントしています。
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class paiza {
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in);){
// 文字列と出現回数の保存用のMap
// 出現した文字列順で出力するように、Mapへの登録順で値を保持するLinkedHashMapを使用
Map<String, Integer> map = new LinkedHashMap<>();
// 標準入力から取得した文字列が既出かの判断用変数
boolean containsjudge = false;
// 標準入力の値を取得できる間処理を実行
while (sc.hasNext()) {
String inputString = sc.next();
containsjudge = map.keySet().containsAll(List.of(inputString));
// 取得した文字列がMapに登録されている場合、登録されている値を+1する。
// 既出でない場合、Mapに登録する
if (containsjudge) {
map.put(inputString, map.get(inputString)+1);
} else {
map.put(inputString, 1);
}
}
// Mapのキー・バリューを標準出力で表示する
for (String key : map.keySet()) {
System.out.println(key + " " + map.get(key));
}
}
}
}
参考