如何在java中将十六进制转换为ASCII值?

时间:2010-04-26 07:08:22

标签: java

感谢您的回答......我有31 32 2E 30 31 33 6byte十六进制数。我想将这个6字节的十六进制数转换成java中的12.013 ASCII数。

3 个答案:

答案 0 :(得分:5)

这样的东西?

byte[] bytes = {0x31, 0x32, 0x2E, 0x30, 0x31, 0x33};
String result = new String(bytes, "ASCII");
System.out.println(result);

答案 1 :(得分:0)

可能不是最优雅的方法,但试试这个:

char[6] string = new char[6];
string[0] = 0x31;
string[1] = 0x32;
string[2] = 0x2E;
string[3] = 0x30;
string[4] = 0x31;
string[5] = 0x33;

String s = new String(string);

int result = Integer.parseInt(s);

答案 2 :(得分:0)

假设您的输入是一个表示十六进制数字的字符串数组,您可以执行以下操作:

public static String convert(String[] hexDigits){
    byte[] bytes = new byte[hexDigits.length];

    for(int i=0;i<bytes.length;i++)
        bytes[i] = Integer.decode("0x"+hexDigits[i]).byteValue();

    String result;
    try {
        result = new String(bytes, "ASCII");
    } catch (UnsupportedEncodingException e) {
        throw new RuntimeException(e);
    }
    return result;
}

请注意,代码假定数字是作为有效的ASCII值给出的,没有基数说明符。