わからない事
実行結果にならい、キーボードから整数の値を入力すると、その値が漢数字で出力されるプログラムを作りたいです。
このとき、用いられるのは、1から9に対応するのが、一から九までの漢字で、ゼロは、〇と表示したいです。
また、この数字と漢字の対応は、HashMapを用いて作りたいです。
また、結果を出力する際には、3桁ごとに「,」(コンマ)を出力したいです。
※ヒント:入力は、数値としてではなく、文字列として受付、その中身が妥当かどうか調べるとよいとのことです。
期待値としては、
整数の値を入力してください:1198000 ← コンソールから整数の値を入力
変換結果:一,一九八,○○○
整数の値を入力してください:hello
整数の値を入力してください。
このような実行結果にしたく以下のコードを書かせていただきました。
書いたコードは以下になります。
Java
1public static void main(String[] args) throws IOException { 2 HashMap<String, String> list = new HashMap<String, String>(); 3 InputStreamReader isr = new InputStreamReader(System.in); 4 BufferedReader br = new BufferedReader(isr); 5 String buf; 6 while (true) { 7 System.out.print("整数の値を入力してください:"); 8 buf = br.readLine(); 9 list.put("0", "〇"); 10 list.put("1", "一"); 11 list.put("2", "二"); 12 list.put("3", "三"); 13 list.put("4", "四"); 14 list.put("5", "五"); 15 list.put("6", "六"); 16 list.put("7", "七"); 17 list.put("8", "八"); 18 list.put("9", "九"); 19 20 if (buf.equals("")) { 21 System.out.println("変換結果"); 22 23 } 24 } 25 } 26 27 private static void showResult(Map<String, String> c1) { 28 for (Map.Entry<String, String> a : c1.entrySet()) { 29 System.out.println(a.getKey() + " : " + a.getValue()); 30 } 31 } 32} 33
期待値通りではないです。
大変申し訳ございませんが、ご教示していただきたいです。
回答3件
あなたの回答
tips
プレビュー