【问题标题】:android java - converting string to byte variableandroid java - 将字符串转换为字节变量
【发布时间】:2013-06-21 01:59:14
【问题描述】:

我正在用 android 编写一个小程序,其中我有一个字符串变量中的字节值列表。像这样:

String src = "255216173005050";

现在,我需要做的是从源字符串中提取字节值并将它们存储在字节变量中。 (在上面的源字符串中,我将有 5 个字节要存储)

为此,我可以成功读取源字符串并将字节值分隔 3 个字符。 (255, 216, 173, 005, 050)

问题是我未能将这些字符串转换为它们的字节值。

这是我已经做过的:

String str = "255";
byte b = (byte) Integer.parseInt(str);

通过运行,b 将为 -60 ! 有没有 请帮帮我!

【问题讨论】:

标签: java string byte


【解决方案1】:

这应该可行。然后只需访问字节数组的各种索引来获取各个部分。如果您的文本是异常字符集 - 则将字符集传递给 getBytes() 方法。

byte[] bytes = src.getBytes();

【讨论】:

  • Locale 会狠狠地骂他。此外,它不会接近他的要求..."255".getBytes() != 0xFF
  • Paul,感谢您的回复.. 但实际上通过运行您的代码,它会将“2”、“5”、“5”转换为单独的字节值.. 我的问题是如何转换“255 "到字节..
【解决方案2】:

当你想要byte 时,不要使用parseInt;而是尝试Byte.parseByte。另请注意,bytes 的范围为 -128 到 127(含)。

【讨论】:

    【解决方案3】:

    当你写作时

    byte b = (byte) Integer.parseInt(str);
    

    你会得到一个有符号的字节。如果您查看使用诸如

    之类的方法丢弃的 int
    int i = Integer.parseInt(str);
    System.out.println(i);
    byte b = (byte) i;
    

    您可能会看到i 包含您想要的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2011-08-06
      • 2013-12-19
      • 2011-07-26
      相关资源
      最近更新 更多