字符串到字节的转换

时间:2011-12-20 14:02:03

标签: java

如何将字符串转换为字节?例如,Byte.parseByte("255");会导致NumberFormatException,因为(出于某些奇怪的原因)byte在java中为signed,因此它可以具有的最大值为127

所以我需要一个这样的功能

public static byte toByte(String input) {
...
}

例如toByte("255");应返回-1(即位:11111111)

类似于2s complement

的实现

4 个答案:

答案 0 :(得分:8)

使用Integer.parseInt("255")并将结果int投射到byte

byte value = (byte)Integer.parseInt("255");

答案 1 :(得分:1)

   public static void main(String[] args) {    
     String s = "65";
     byte b = Byte.valueOf(s);
     System.out.println(b);

     // Causes a NumberFormatException since the value is out of range
     System.out.println(Byte.valueOf("129"));
  }

答案 2 :(得分:1)

字节值=(字节)Integer.parseInt(" 255");

答案 3 :(得分:0)

我正在考虑以下实施!

public static byte toByte(String input) {
    Integer value = new Integer(input);

    // Can be removed if no range checking needed.
    // Modify if different range need to be checked.
    if (value > 255 || value < 0)
        throw new NumberFormatException("Invalid number");

    return value.byteValue();
}