Java 如何将值从";%转换回%02x";在爪哇?

Java 如何将值从";%转换回%02x";在爪哇?,java,type-conversion,uuid,primitive-types,Java,Type Conversion,Uuid,Primitive Types,我有一个字节数组,它以已知的方式转换为字符串 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; } 在我的情况下不起作用。非常简

我有一个字节数组,它以已知的方式转换为字符串

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;
}
在我的情况下不起作用。

非常简单,请尝试:

将字节数组转换为UIID:

怎么样:

int len=s.length();
字节[]数据=新字节[len/2];
对于(int i=0;i这是非常简单的尝试:

将字节数组转换为UIID:

怎么样:

int len=s.length();
字节[]数据=新字节[len/2];
对于(int i=0;i数据[i/2]=(字节)((Character.digit(s.charAt(i),16)以下是将十六进制数转换回字节的方法:

String str = "4FDD3A";
byte[] bytes = new byte[str.length()/2];
for (int i = 0; i < str.length(); ++i) {
    if ((i+1)*2 <= str.length()) {
        bytes[i] = (byte) Integer.parseInt(str.substring(i*2, (i+1)*2), 16);
    }
}
for (byte b: bytes) {
    System.out.format("%02x\n", b);
}
String str=“4FDD3A”;
byte[]bytes=新字节[str.length()/2];
对于(int i=0;i如果((i+1)*2这里有一种将十六进制数转换回字节的方法:

String str = "4FDD3A";
byte[] bytes = new byte[str.length()/2];
for (int i = 0; i < str.length(); ++i) {
    if ((i+1)*2 <= str.length()) {
        bytes[i] = (byte) Integer.parseInt(str.substring(i*2, (i+1)*2), 16);
    }
}
for (byte b: bytes) {
    System.out.format("%02x\n", b);
}
String str=“4FDD3A”;
byte[]bytes=新字节[str.length()/2];
对于(int i=0;i如果((i+1)*2谢谢,但我确实需要以字节为单位的数据,而不是再次打印为字符串和格式。这只是为了证明结果是正确的。显然不需要打印。谢谢,但我确实需要以字节为单位的数据,而不是再次打印为字符串和格式。这只是为了证明结果是正确的。显然,pri最后一个做了这个把戏,非常感谢,我坚持了几个小时)可能需要减少工作)最后一个做了这个把戏,非常感谢,我坚持了几个小时)可能需要减少工作
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));
    }
String str = "4FDD3A";
byte[] bytes = new byte[str.length()/2];
for (int i = 0; i < str.length(); ++i) {
    if ((i+1)*2 <= str.length()) {
        bytes[i] = (byte) Integer.parseInt(str.substring(i*2, (i+1)*2), 16);
    }
}
for (byte b: bytes) {
    System.out.format("%02x\n", b);
}