2016-10-07 3 views
1
for (int i= length-1;i>=0; i--){//reverses order of string. 
     password_2 = password_2 + password.charAt(i);//store in new string 
     System.out.print(password.charAt(i)); 

基本的に逆順にした後、各文字から7を引く必要があります。だから私は入力を言うことができます: "kflre"​​。私は、等からkから7を引く必要があります。私はforループの中でそれをやりたかったのです。それは可能ですか、それとも前にすべてをintに変換しなければなりませんか?文字列がある場合は、それぞれの文字列を引くことは可能ですか? Java

+2

は、(nessecaryしかしreadablilityのためではない)整数引くと、あなたはセザールアルゴリズムを使用して、それを暗号化したい –

+0

をcharに戻ってそれをキャストするためにそれをキャスト? –

+1

これは "文字列"ではありません(このようなものは存在しません)。 [JLS](http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html)は、 'char'を' int'に自動的に変換できることを定義しています。ユニコード値を扱い、予期しない/印字不能な文字を取得する可能性があるので、 'int'を' char'にキャストしてください。 – Turing85

答えて

1

アルファベットの文字の位置から7を引いてそれを生成しますか?例えばh-7 = aである。

アルファベットでmap<int, String>を入力してから、.equals(theLetterEntered)をループで使用して位置を取得してから、マップキーを追加して新しい文字を取得できますか?

簡単な例:あなたのループ内

HashMap<Integer, String> alphabetMap = new HashMap(); 
    String strToCompare; 

    alphabetMap.put(1, "a"); 
    alphabetMap.put(2, "b"); 
    //etc. 

    for (int i=0; 1<26;i++){ 
     if (alphabetMap.get(i).equals(strToCompare)){ 
      //code 
    } 
+0

'(char)( 'G' - 7)'は ''a''ではなく '' @ ''になり、'(char )( 'G' - 6) 'は' 'A ''になります。 Javaのクラスは大文字で始まります( 'map' - >' Map')。 – Turing85

+0

@ Turing85あなたは正しいです、金曜日には数学が難しいようですが、私の答えは例としてアルファベットだけを反映しています。 –

関連する問題