2016-04-13 7 views
1

文字を入力した後、スキップする数値の数を入力すると問題が発生します。例えば、ユーザのタイプは文字abcで、スキップされるべき2の数字をタイプします。出力はcdfです。私のプログラムではうまくいきます。しかし、ユーザーがxyzを入力すると、番号4が入力されます。私のプログラムは動作しません。また、zを持つすべての文字は出力を表示しません。たとえばxyzの場合、スキップする数値は1です。出力はyzのみになります。私は手紙はオフセットが文字Zを過ぎて行くことをイベントでアルファベットの先頭に周囲に「ラップ」することにより、あなたが探していることはモジュラス機能のいくつかの並べ替えだと思う文字を入力するときに文字がスキップされています

public class Test2 { 

private Scanner sc = new Scanner(System.in); 
private char characters[]=  {'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'}; 

}

+0

あなたの 'f'ループは上限を持たないようです。あなたのコードが何をしているのか説明できますか? –

+0

@TimBiegeleisen私のコードは、ユーザーが入力した文字を取得し、その後、スキップする数値の数を入力します。たとえば、aと入力し、1を入力します。出力はbとなります。これは、+ 1がbになりますが、私がzを入力すると1になり、スキップする数値として1が出力されません。 –

+0

そして、 'z'と' 1'がスキップするためには何が出力されるべきですか? –

答えて

1

。このコードを試してみてください。

String alphabet = "abcdefghijklmnopqrstuvwxyz"; 
for (int f=0; f < text.length(); f++) { 
    int index = alphabet.indexOf(text.charAt(f)); 
    System.out.println(alphabet.charAt((index + num) % 26)); 
} 

このコードスニペットは、IntelliJの上でテストし、入力xam4のために正しい出力beqを与えました。

+0

ありがとうございました。うわー、あなたはそれを正しく持っています。 –

関連する問題