在我的应用程序中,我正在从表中读取一些数据。这是字符串格式。我需要将这些数据解析为byte。
例:
假设我的字符串包含0e
比我想把0e作为字节值。
这里(byte) (Integer.parseInt("0e",16) & 0xff)
;将无法工作,因为它会将此值解析为整数..任何有关此的帮助将不胜感激。谢谢。
答案 0 :(得分:8)
即使Integer.parseInt("0e", 16) & 0xff
产生integer
,也没有什么可以阻止你添加演员:
byte b = (byte)(Integer.parseInt("0e",16) & 0xff);
您可以使用String.Format
来验证转换是否正常运行:
String backToHex = String.format("%02x", b); // produces "0e"
答案 1 :(得分:3)
尝试:
byte b = Byte.parseByte("0e", 16);
答案 2 :(得分:2)
您可以通过以下代码解析字节:
byte b = Byte.parseByte("0e", 16)
答案 3 :(得分:1)
这会将您的字符串转换为字节列表。
public static List<Byte> parseStringBytes(String str)
{
if (str.length() % 2 == 1)
str = "0" + str; // otherwise 010 will parse as [1, 0] instead of [0, 1]
// Split string by every second character
String[] strBytes = str.split("(?<=\\G.{2})");
List<Byte> bytes = new ArrayList<>(strBytes.length);
for (String s : strBytes) {
bytes.add(Byte.parseByte(s, 16));
}
return bytes;
}
这样打电话:
System.out.println(parseStringBytes("05317B13"));
// >>> [5, 49, 123, 19]