2017-01-11 28 views
-4

私はJavaを初めて使いました。これは非常に基本的な質問です。これはプログラムのごく一部です。私は何をしなければならないのですか:
ユーザは、keyLengthに数字(1-26)を暗号化として入力します。 numberが1の場合、secretletterはaとなります。その2はB、というように、それは私が知りたいことは、これを行うより良い方法がある、ということである26基本的な質問

になりますZまでされるかどう:

if (keyLength==1){ 
    secretletter=a; 
if (keyLength==2){ 
    secretletter=b; 

私が持っているものdoneは下ですが、私のforループは間違っていて、私は常にzで終わります。

public static char secret(String str,int keyLength){ 
    char secretletter = 0; 
    if (keyLength>=0 && keyLength<27){ 
     for(char i='a'; i<='z';i++){ 
      secretletter=i; 
     } 
    } 
    return secretletter; 
} 

編集:私は私のミスを発見し、他の男@that同様

secretletter=(char)('a'+ keyLength - 1); 
+1

'文字secretLetter = '' + KEYLENGTH - 1;' –

+0

たぶんまた[この前の質問](http://stackoverflow.com/questions/41580795/cant-shift-caesarを見てみましょことを検討-cipher-by-more-than-1) – MadProgrammer

+0

あなたがしていることは間違っています。ヒント: 'String'は' char'配列です。ですから、forループでは、秘密鍵で各文字を変更しようとします。 –

答えて

0

あなたはswitchステートメントのOracle documentationを見てみたいことを助けてくれました。

public static char secret(int keyLength){ 
    char key; 
    switch (keyLength) { 
    case 1: key = 'a'; 
     break; 
    case 2: key = 'b'; 
     break; 
    case 3: key = 'c'; 
     break; 
    ........ 
    default: key = 'z'; 
     break; 
    } 
    return key; 
} 
+0

(1)コードスニペットは実際にブラウザで実行できるコード用です。このツールはCSS/JavaScript/HTMLの例です。 Javaの場合、エディタメニューのコードサンプル( '{}'アイコン)を使用します。 (2) '' ''は有効な文字ではないので' 'char key =' ';はコンパイルされません。 – Pshemo

+0

更新された答え:) –