この種の質問は StackOverFlow 全体で一般的であることは知っていますが、私が持っている質問はより具体的です。私のプログラムには、main() メソッド、正常に動作する英語からモールスへのメソッド、および問題を抱えているモールスから英語へのメソッドがあります。
public static void MorsetoString(String Morse, char [] Alphabet, String [] MorseCode){
StringBuffer English = new StringBuffer();
for(int i=0;i < Morse.length(); i++){
if (Morse.charAt(i) != ' '){
for (int j = 0; j < MorseCode.length; j ++){
if (Morse.charAt(i) == MorseCode[j]){
English.append(MorseCode[j]);
English.append(" ");
}
}
}
}
}
このメソッドで引数として使用される配列は次のとおりです。
char Alphabet [] = {'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ' '};
String MorseCode [] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "..-", ".--", "-..-", "-.--", "--..", "|"};
when のステートメントを追加する必要があるため、コードは完全には完成していませんがMorse.charAt(i) == ' '
、主にこの部分に問題があります。
このコードの問題はif (Morse.charAt(i) == MorseCode[j])
、私が言うと、char 型の変数を文字列型と比較しているため、プログラムがコンパイルされないことです。私のコードはロジックの点で全体的に機能すると思いますが、2 つを比較できるようにコードを変更する方法はありますか? 正確なエラー メッセージは「