3

ここでいくつかのコードに行き詰まっています。私がやろうとしているのは、文字列を ASCII 値に変換し、そこから 30 を引いてから文字列に戻すことです。

E.g. Enter -  hello
     Convert to - 104 101 108 108 111
     Subtract - 74 71 78 78 81
     display - JGNNQ

コード:

import javax.swing.*;
public class practice {                    
   public static void main (String[] args) {

      String enc = "";
      String encmsg = "";
      String msg = JOptionPane.showInputDialog("Enter your message");
      int len = msg.length();
      for (int i = 0; i< len ; i++) {
         char cur = msg.charAt(i);
         int val = (int) cur;
         val = val -32;
         enc = "" + val;
         encmsg = encmsg + enc;

      }

      JOptionPane.showMessageDialog(null, encmsg);


   }
}

前もって感謝します

4

1 に答える 1

5

いくつかのこと:

に変更 val = val -32;val = val -30;て、元の問題ステートメントで必要な適切な減算を取得します。

次に変更

enc = "" + val;enc = (char)val;

値を適切な文字に変換できるようにします。以前は、変換を行わない文字列に連結するだけでした。また、ファイルの先頭でencとして宣言する必要があります。char

完全な作業コードは次のようになります。

    char enc;
    String encmsg = "";
    String msg = JOptionPane.showInputDialog("Enter your message");
    int len = msg.length();
    for (int i = 0; i < len; i++) {
        char cur = msg.charAt(i);
        int val = (int) cur;
        val = val - 30;
        enc = (char) val;
        encmsg = encmsg + enc;

    }

    JOptionPane.showMessageDialog(null, encmsg);
于 2013-10-29T15:48:38.837 に答える