Java:如何将ASCII字符串转换为字符串?

时间:2017-03-02 14:14:02

标签: java string ascii

我使用MQTT客户端/代理从一个设备向另一个设备发送消息。该消息在两个设备之间以String成功交换(发送和接收)。

但是,在MQTT-Broker(即服务器)上,消息字符作为字符串中的ASCII编号接收。

例如,如果我发送:

  

“这是一个测试”

在经纪人身上显示:

  

“84,104,105,115,32,105,115,32,97,32,116,101,115,116,10”

使用Java,我需要一种方法将这个ASCII字符串转换回服务器上的字符串以进行进一步处理。

怎么做?谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用带有分隔符的StringTokenizer作为逗号来中断字符串,然后对每个字符串进行迭代并使用Character.toString ((char) i);

答案 1 :(得分:1)

将字符串转换为byte []并使用byte []

创建一个新字符串
String str = "84,104,105,115,32,105,115,32,97,32,116,101,115,116,10";
String[] chars = str.split(",");
byte[] bytes = new byte[chars.length];
for (int i = 0; i < chars.length; i++) {
  bytes[i] = Byte.parseByte(chars[i]);
}
return new String(bytes);

答案 2 :(得分:0)

如果您可以使用stream

,也可以使用java-8
String str = Stream.of("84,104,105,115,32,105,115,32,97,32,116,101,115,116,10".split(","))
        .map(ch -> (char) Integer.valueOf(ch).intValue())
        .collect(StringBuilder::new,
                StringBuilder::appendCodePoint, StringBuilder::append)
        .toString();
System.out.println(str); // This is a test