Java 如何将数据转换为格式化字节?

Java 如何将数据转换为格式化字节?,java,hex,byte,Java,Hex,Byte,有人对如何将数据(主要是字符串)转换为格式化字节表示有什么建议吗 例如,如果我输入字符串“01”,我想得到0001,或者如果我输入“0001”,我想得到0001 public static void main(String[] args) { System.out.println(toFormattedHexadecimal("01A")); } public static String toFormattedHexadecimal(String input) { String

有人对如何将数据(主要是字符串)转换为格式化字节表示有什么建议吗

例如,如果我输入字符串“01”,我想得到
0001
,或者如果我输入“0001”,我想得到
0001

public static void main(String[] args) {
    System.out.println(toFormattedHexadecimal("01A"));
}

public static String toFormattedHexadecimal(String input) {
    String result = "";
    for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        result += Integer.toHexString(ch);
        result += " ";
    }
    return result;
}
我尝试过使用ByteBuffer,但输出总是8位长,即
01=>0001

公共静态void main(String[]args){
public static void main(String[] args) {
    System.out.println(toFormattedHexadecimal("01A"));
}

public static String toFormattedHexadecimal(String input) {
    String result = "";
    for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        result += Integer.toHexString(ch);
        result += " ";
    }
    return result;
}
System.out.println(格式为十六进制(“01A”); } 公共静态字符串到格式十六进制(字符串输入){ 字符串结果=”; 对于(int i=0;i

此代码将输出“30 31 41”,即每个字符的ASCII代码。

我以前从未见过此表示法,因为它听起来效率很低。然而,你能做的是

public static void main(String... args) throws IOException {
    System.out.println("01 => " + Arrays.toString(byteValues("01")));
    System.out.println("0001 => " + Arrays.toString(byteValues("0001")));
    System.out.println("0123456789ABCDEF => " + Arrays.toString(byteValues("0123456789ABCDEF")));
}

public static byte[] byteValues(String text) {
    byte[] bytes = new byte[text.length()];
    for(int i=0;i<text.length();i++)
        bytes[i] = (byte) Character.getNumericValue(text.charAt(i));
    return bytes;
}
什么是“格式化字节表示”?看起来您只是在每个字符前面加上一个0,并在结果对之间添加空格。