0

有什么方法可以使用java中的一些内置函数直接将十六进制值转换为其字符串等效形式。

例如:

输入:“68656c70”

输出:“帮助”

我知道如何使用内置函数来做相反的事情,但是对于这个问题,存在吗???

4

3 回答 3

3

对于一个班轮尝试

String hex = "68656c70";
String text = new String(new BigInteger(hex, 16).toByteArray(), 0);
System.out.println(text);
于 2012-04-14T08:54:39.420 回答
1

不,没有这样的内置功能。您必须进行字符串拆分,parseInt(<bits>, 16);然后手动转换为字符。

于 2012-04-14T08:31:17.093 回答
0

没有内置功能,但可以帮助您:

import java.io.IOException;

public class RunT {

    public static void main(String[] args) throws IOException {
        try {

            String str = stringToHex("help");

            System.out.println(str);

            String str1 = convertHexToString(str);

            System.out.println(str1);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    static String stringToHex(String str) {
        char[] chars = str.toCharArray();
        StringBuffer strBuffer = new StringBuffer();
        for (int i = 0; i < chars.length; i++) {
            strBuffer.append(Integer.toHexString((int) chars[i]));
        }
        return strBuffer.toString();
    }

    public static String convertHexToString(String hex) {

        StringBuilder sb = new StringBuilder();
        StringBuilder temp = new StringBuilder();

        for (int i = 0; i < hex.length() - 1; i += 2) {
            String output = hex.substring(i, (i + 2));
            int decimal = Integer.parseInt(output, 16);
            sb.append((char) decimal);
            temp.append(decimal);
        }
        return sb.toString();
    }

}
于 2012-04-14T08:31:06.337 回答