为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在 Java 中将字符串(逐个字符)转换为其 ASCII 值?

有没有办法在 Java 中将字符串(逐个字符)转换为其 ASCII 值?

呼唤远方 2021-11-17 15:01:11
我目前正在尝试编写一个加密程序,我正在尝试弄清楚用户如何输入字符串(数字、字母和特殊字符的混合)并让程序将每个字符转换为其数字 ASCII 值。我在互联网上进行了搜索,但似乎找不到任何可以执行此操作的方法或代码行。现在在有人说“尝试将其转换为整数”之前,我已经尝试过但它不起作用。因此,如果有人能在这件事上帮助我,我将不胜感激。
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

要将字符转换为数字,您需要选择一种编码。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);


查看完整回答
反对 回复 2021-11-17
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您可以遍历字符串并使用字符串的 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


查看完整回答
反对 回复 2021-11-17
  • 2 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信