如何将字符串转换为字节?例如,Byte.parseByte("255");
会导致NumberFormatException
,因为(出于某些奇怪的原因)byte
在java中为signed
,因此它可以具有的最大值为127
。
所以我需要一个这样的功能
public static byte toByte(String input) {
...
}
例如toByte("255");
应返回-1
(即位:11111111)
答案 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();
}