質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1590閲覧

javaでモールス信号に変換するプログラム

Kobutachan

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/10/09 04:51

編集2018/10/09 14:09

お世話になっております。

ユーザーに文字列を入れてもらい(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が返されてしまい、モールス信号が返ってきません。

どうにかご指導していただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/10/09 06:03

「ハッシュマップを使ってどのように探すのか」が分からないのに、なぜハッシュマップを使おうと思ったのでしょうか?(ようするに、ハッシュマップが何なのか分かってないってことですよね?)
guest

回答3

0

Java

1Scanner input = new Scanner(input);

Java

1String str = input.nextLine(); 2for (String line : str) { 3 //文字列を一文字ずつに分ける 4 String[] lineParts = line.split(""); 5}

Java

1HashMap<String, String> codes = new HashMap<Stirng, String>(); 2getMorseChar = convert(str);

等のコンパイルも通らないエラーが多々見受けられるのですが、
そこは一旦放置で普通にMap#get()を使用すればいいかと
Map#get(Object key)

投稿2018/10/09 05:07

terrace

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kobutachan

2018/10/09 14:18

修正いたしました。ありがとうございます。参考にします!
guest

0

わからない点は、一文字ずつにわけた文字列をハッシュマップを使ってどのように探すのかというところです。

HashMapのgetメソッドを使って対応したモールス信号を返せば良いかと。

投稿2018/10/09 04:59

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kobutachan

2018/10/09 15:34

参考になりました、ありがとうございます。
guest

0

自己解決

java

1import java.util.Scanner; 2import java.util.HashMap; 3 4public class MorceCode { 5 6 public static void main(String[] args) { 7 //Create HashMap 8 HashMap<Character, String> codes = new HashMap<Character,String>(); 9 /* I use HashMap for searching the string from morse code. 10 */ 11 Scanner input = new Scanner(System.in); 12 //Ask user to type the string 13 14 //put a key and value for each. 15 codes.put('a',".-"); 16 codes.put('b',"-..."); 17 codes.put('c',"-.-."); 18 codes.put('d',"-.."); 19 codes.put('e',"."); 20 codes.put('f',"..-."); 21 codes.put('g',"--."); 22 codes.put('h',"...."); 23 codes.put('i',".."); 24 codes.put('j',".---"); 25 codes.put('k',"-.-"); 26 codes.put('l',".-.."); 27 codes.put('m',"--"); 28 codes.put('n',"-."); 29 codes.put('o',"---"); 30 codes.put('p',".--."); 31 codes.put('q',"--.-"); 32 codes.put('r',".-."); 33 codes.put('s',"..."); 34 codes.put('t',"-"); 35 codes.put('u',"..-"); 36 codes.put('v',"...-"); 37 codes.put('w',".--"); 38 codes.put('x',"-..-"); 39 codes.put('y',"-.--"); 40 codes.put('z',"--.."); 41 codes.put(' '," "); 42 codes.put(',',"--..--"); 43 codes.put('.',".-.-.-"); 44 codes.put('?',"..--.."); 45 codes.put('0',"----"); 46 codes.put('1',".---"); 47 codes.put('2',".---"); 48 codes.put('3',"...--"); 49 codes.put('4',"....-"); 50 codes.put('5',"....."); 51 codes.put('6',"-..."); 52 codes.put('7',"--..."); 53 codes.put('8',"---.."); 54 codes.put('9',"-----."); 55 56 System.out.println("Enter a string."); 57 String str = input.nextLine(); 58 str = str.toLowerCase(); 59 60 if(str.isEmpty()) { 61 System.out.println("Please eneter a string."); 62 }else { 63 // get value of key 3 64 System.out.println(str); 65 System.out.println(str +" in morse code is "); 66 for(int i = 0; i < str.length() ;i++) 67 { 68 String val = (String)codes.get(str.charAt(i)); 69 System.out.print(val + " "); 70 } 71 } 72 } 73} 74 75 76 77 78コード

投稿2018/10/09 20:27

Kobutachan

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問