如何将包含十六进制字符的字符串转换为对应的可读文本值?

3
我是一名Android/Java新手。我想在EditText上显示一个十六进制值的可读字符串。 这里有代码。这段代码显示了十六进制的字符串表示,例如: 7465737420202020203f7465737420202020202020202020203f7465737420202020202020202020203fd3f7d3f7d3f77f078840ffffffffffff 以下是我想要显示的内容:
test     ?test           ?test           ?Ó÷Ó÷Ó÷ˆ@ÿÿÿÿÿÿ

如何将文本中的十六进制值转换为实际值?我尝试了许多转换方法,但要么出现运行时错误,要么得到错误的字符。


你能展示一下你尝试过的吗? - ci_
可能是将十六进制字符串转换为整数的重复问题。 - kiranpradeep
1个回答

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);

这段代码考虑到原始字符串始终有效,没有进行任何检查。这是基本思路,希望能对你有所帮助!

1
使用StringBuffer代替吗? - ci_
好的建议。我已经编辑了帖子。 - Laerte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接