私はあなたの助けを借りて私のモールス信号翻訳機をうまく使いこなしましたが、テキストに不明な文字が含まれている場合、空白にはまだ問題があります.
これは、ハッシュマップを使用しているときに単一の文字をモールス信号に変換するために使用する方法です (問題ありません!)
public String getMorseCode(char c) {
char cUpper = Character.toUpperCase(c);
if (charMap.containsKey(cUpper)) {
return charMap.get(cUpper);
} else {
final String emptyString = "";
return emptyString;
}
}
この方法を使用して、エンコード方法を使用してテキストをモールス信号に変換します。
public String encode(String text) {
StringBuilder sb1 = new StringBuilder();
int i = 0;
while (i < text.length()) {
char c = text.charAt(i);
if (c == ' ') {
sb1.append("/");
i++;
} else {
i = i + 1;
sb1.append(getMorseCode(c));
}
sb1.append("*");
}
return sb1.toString().trim();
}
文の前後の空白は .trim() によって削除されます。モールスコードでは、単語間に 3 つの空白、文字間に 1 つの空白があります。テキストに不明な文字が含まれている場合は、その後に空白のない空の文字列 ("") が必要です。メソッド内の空白を / および * に変更して、どのように変化するかを確認しましたが、それでも同じ問題が発生しました。
これを実現するためにコードを変更する方法がわかりません! よろしくお願いします。