有没有一种方法可以将Java中的字符串(按字符)转换为ASCII值?

时间:2018-10-14 12:03:42

标签: java string encryption ascii

我目前正在尝试编写一个加密程序,并且试图弄清楚用户如何输入字符串(数字,字母和特殊字符的组合)并使程序将每个字符转换为数字ASCII值。我已经在整个互联网上进行了搜索,但似乎找不到任何可以做到这一点的方法或代码行。现在,在有人说“尝试将其强制转换为整数”之前,我已经尝试过了,但是它不起作用。因此,如果有人可以在这件事上帮助我,我将非常感激。

2 个答案:

答案 0 :(得分:3)

要将字符转换为数字,需要选择一种编码。 US-ASCII是执行此操作的一种方法,但是请注意,US-ASCII仅定义了约95个字符;不属于这95个字符的任何字符都会导致转换为字节的过程引发异常。当您希望能够转换所有字符(从ü到☃到表情符号)时,通常会选择UTF-8。请注意,在UTF-8中,任何非ASCII字符最终都会成为一个字符的多个字节,因此10个字符的字符串可能最终会多达50个字节。

String test = "Hello!";
byte[] asBytes = test.getBytes(StandardCharsets.US_ASCII);
String fancy = "Wééé! ☃";
byte[] fancyBytes = fancy.getBytes(StandardCharsets.UTF_8);

答案 1 :(得分:1)

您可以遍历字符串并使用字符串的charAt()方法:

String s = "abcd";

for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    int value = s.charAt(i);
    System.out.println(c + " " + value);
}

将打印:

a 97
b 98
c 99
d 100