我有一个字节数组,它以已知的方式转换为字符串。
public String getValueString(byte[] data) {
StringBuilder result = "";
for(int i = 0; i < data.length; i++) {
result.append(String.format("%02X", data[i]));
}
return result.toString;
}
我正在寻找将字符串转换为字节数组的方法。
实际上字节数组是UUID,但它的表示方式和方法很奇怪
UUID.nameUUIDFromBytes(byte[] data)
不适用于我的情况。
最佳答案
这是非常简单的尝试:
byte[] data = string.getBytes();
byte[] data = string.getBytes(Charset.forName("UTF-8"));
将字节数组转换为 UIID:
ByteBuffer bb = ByteBuffer.wrap(inputByteArray);
long firstLong = bb.getLong();
long secondLong = bb.getLong();
return new UUID(firstLong, secondLong);
怎么样:
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
data
是您的字节数组。
关于java - 如何在Java中将值从 "%02x"转换回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25206289/