私はこれについて以前に投稿しましたが、まだいくつか問題があります。私はユーザーから与えられたメッセージをデコードする必要があります。コード解読プログラムの作成
メッセージは、一連の数字で構成され、これらの置換を使用して復号化されるべきである:
例えば1 = D
2 = W
3 = E
4 = L
5 = H
6 = O
7 = R
、5344626741
はHELLOWORLD
あります。
私は多くのことを試してみましたが、近づいてきましたが、出力が正しくありません。特定の文字列を検索する際に問題があると思います。
すべてのヘルプは大歓迎され、ここに私のコードは次のとおりです。
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("Please enter 10 numbers, after each number you put in, press enter. The numbers can only be from 1 - 7.");
int numInputs = 0;
String code = "", deciphered = "";
int input = 0, charNumber = 7;
//5344626741
do{
System.out.println("Please enter a number: ");
input = in.nextInt();
if(input>=8 || input<=0){
System.out.println("Please enter a different number: ");
input = in.nextInt();
code+=input;
numInputs++;
}
else{
code+=input;
numInputs++;
}
}while(numInputs < 10);
System.out.println("Your code is " + code);
for(int add = 0; add < 10; add++){
switch(code.charAt(charNumber)){
case '1': deciphered+="D";
case '2': deciphered+="W";
case '3': deciphered+="E";
case '4': deciphered+="L";
case '5': deciphered+="H";
case '6': deciphered+="O";
case '7': deciphered+="R";
break;
default: System.out.println("Something went wrong! Try again with numbers only 1 - 7.");
charNumber++;
}
}
System.out.println("The output is: "+deciphered);
in.close();
}
それぞれの 'case'に対して' break'が必要です。そうでなければ、 'case'に落ちます。 –
数字を文字にマッピングする配列を考えましたか? –
また、ユーザーが無効な入力を2回入力した場合は、無視する必要がある場合に有効な数字として使用することに注意してください。 –