作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在这里遇到了一些代码,我想做的是将一个字符串转换成它的 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);
}
}
提前致谢
最佳答案
一些事情:
将 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);
关于java - 如何将 ASCII 值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19662899/
我是一名优秀的程序员,十分优秀!