お世話になっております。
ユーザーに文字列を入れてもらい(A-Z,a-z,0-9, スペース、コンマetc)それをモールス信号化して表示するという課題です。
アイデアとしてはハッシュマップを使って、入力された文字(キー)が見つかった場合その値を返すということを実現させたいです。
java
1 2import java.util.Scanner; 3import java.util.HashMap; 4 5public class AskUser { 6 7 public static void main(String[] args) { 8 9 HashMap<String, String> codes = new HashMap<String, String>(); 10 11 Scanner input = new Scanner(System.in); 12 13 System.out.println("Enter a string."); 14 String str = input.nextLine(); 15 16 codes.put("a",".-"); 17 codes.put("b","-..."); 18 codes.put("c","-.-."); 19 codes.put("d","-.."); 20 codes.put("e","."); 21 codes.put("f","..-."); 22 codes.put("g","--."); 23 codes.put("h","...."); 24 codes.put("i",".."); 25 codes.put("j",".---"); 26 codes.put("k","-.-"); 27 codes.put("l",".-.."); 28 codes.put("m","--"); 29 codes.put("n","-."); 30 codes.put("o","---"); 31 codes.put("p",".--."); 32 codes.put("q","--.-"); 33 codes.put("r",".-."); 34 codes.put("s","..."); 35 codes.put("t","-"); 36 codes.put("u","..-"); 37 codes.put("v","...-"); 38 codes.put("w",".--"); 39 codes.put("x","-..-"); 40 codes.put("y","-.--"); 41 codes.put("z","--.."); 42 codes.put("A",".-"); 43 codes.put("B","-..."); 44 codes.put("C","-.-."); 45 codes.put("D","-.."); 46 codes.put("E","."); 47 codes.put("F","..-."); 48 codes.put("G","--."); 49 codes.put("H","...."); 50 codes.put("I",".."); 51 codes.put("J",".---"); 52 codes.put("K","-.-"); 53 codes.put("L",".-.."); 54 codes.put("M","--"); 55 codes.put("N","-."); 56 codes.put("O","---"); 57 codes.put("P",".--."); 58 codes.put("Q","--.-"); 59 codes.put("R",".-."); 60 codes.put("S","..."); 61 codes.put("T","-"); 62 codes.put("U","..-"); 63 codes.put("V","...-"); 64 codes.put("W",".--"); 65 codes.put("X","-..-"); 66 codes.put("Y","-.--"); 67 codes.put("Z","--.."); 68 codes.put(" "," "); 69 codes.put(",","--..--"); 70 codes.put(".",".-.-.-"); 71 codes.put("?","..--.."); 72 73 if(str.isEmpty()) { 74 System.out.println("Please eneter a string."); 75 }else { 76 77 String val = (String)codes.get(input); 78 79 80 System.out.println(str +" in morse code is " + val); 81 } 82 83 84} 85} 86 87 88 89
エラーは実行しても nullが返されてしまい、モールス信号が返ってきません。
どうにかご指導していただけると嬉しいです。
「ハッシュマップを使ってどのように探すのか」が分からないのに、なぜハッシュマップを使おうと思ったのでしょうか?(ようするに、ハッシュマップが何なのか分かってないってことですよね?)

回答3件
あなたの回答
tips
プレビュー