在我的应用程序中,我正在从表中读取一些数据。这是字符串格式。我需要将此数据解析为字节。示例:假设我的字符串包含 0e 而不是我想要将 0e 作为字节值。这里(byte) (Integer.parseInt("0e",16) & 0xff)
; 将不起作用,因为它将将此值解析为整数..对此的任何帮助将不胜感激。在此先感谢。
问问题
214 次
4 回答
8
Even though Integer.parseInt("0e", 16) & 0xff
produces an integer
, there's nothing preventing you from adding a cast:
byte b = (byte)(Integer.parseInt("0e",16) & 0xff);
You can use String.Format
to verify that the conversion has worked properly:
String backToHex = String.format("%02x", b); // produces "0e"
于 2013-10-08T12:49:21.393 回答
3
尝试:
byte b = Byte.parseByte("0e", 16);
于 2013-10-08T12:51:18.950 回答
2
您可以通过以下代码解析字节:
byte b = Byte.parseByte("0e", 16)
于 2013-10-08T12:51:02.620 回答
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]
于 2013-10-08T13:03:14.157 回答