如何将ASCII值转换为字符串

时间:2013-10-29 15:43:11

标签: java string ascii

我在这里遇到了一些代码,而我正在尝试将字符串转换为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);


   }
}

提前致谢

1 个答案:

答案 0 :(得分: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);