如何将带有十六进制字符的字符串转换为该十六进制的人类可读值

时间:2015-03-24 19:45:50

标签: java android android-intent android-activity

我是android / java的新手。我想在EditText上的CharSequence中显示一个人类可读的十六进制值字符串。 The code is here。此代码显示十六进制的字符串表示形式,例如:7465737420202020203f7465737420202020202020202020203f7465737420202020202020202020203fd3f7d3f7d3f77f078840ffffffffffff

这就是我想要展示的内容:

test     ?test           ?test           ?Ó÷Ó÷Ó÷ˆ@ÿÿÿÿÿÿ

如何在文本中转换十六进制值。我尝试了许多转换方式,但我遇到了运行时错误或错误的字符。

1 个答案:

答案 0 :(得分:4)

你可以这样做:

    String a = " 7465737420202020203f7465737420202020202020202020203f7465737420202020202020202020203fd3f7d3f7d3f77f078840ffffffffffff";
    a = a.trim();
    StringBuffer result = new StringBuffer();

    for (int i = 0; i < a.length(); i+=2) {
        String sub = a.substring(i, i+2);
        int b = Integer.parseInt(sub, 16);
        result.append((char)b);
    }

    System.out.println(result);

此代码考虑到原始字符串始终有效。没有检查。

这是基本想法,希望它有所帮助!