【问题标题】:Convert String with ascii value to normal string将带有 ascii 值的字符串转换为普通字符串
【发布时间】:2014-04-22 11:44:08
【问题描述】:

这是我的代码:

int availableBytes = inputStream.available();
if (availableBytes > 0) {
    inputStream.read(readBuffer, 0, availableBytes);
    System.out.println(new String(readBuffer, 0, availableBytes));
Reponse = new String(readBuffer, "UTF-8");
System.out.println(Reponse);

我的问题:

所以我输入了字符串类型的“响应”变量,我认为 ascii 值很好,因为当我执行“响应”的 sysout 时,它显示了 3 个“带有问号的正方形”。

那么是否可以将此字符串值转换为整数中的 ascii 值?

【问题讨论】:

  • 提示:要“打印”一个数组,请使用Arrays.toString()
  • 我不能将 Arrays.toString() 用于字符串 :( ?
  • 这真的是一个作为返回值的 ASCII 字符串吗?不知怎的,我对此表示怀疑。你有数据包格式吗?如果是,你能用它更新你的问题吗?
  • -1:请编辑您的代码并从那里删除所有不必要的混乱,以便您只留下与您的问题相关的代码。这看起来是一种非常懒惰的态度,一个人不太愿意花时间回答。
  • 这是我得到的:s17.postimg.org/hwwkp1d4r/Raw.png

标签: java string integer ascii converter


【解决方案1】:

Java String 不是字节序列 - 有符号的 8 位,而是字符序列 - 无符号的 16 位。还要为您的构造函数阅读javadoc

通过解码指定的字节子数组构造一个新的字符串 使用平台的默认字符集。新字符串的长度是 字符集的函数,因此可能不等于 子数组。

它不像你想象的那样工作 - 它不会将每个字节转换为一个字符!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多