当前位置: 首页 > 知识库问答 >
问题:

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

巫马俊力
2023-03-14

编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。

我是android/java的新手。我想在EditText上的CharSequence中显示一个人类可读的十六进制值字符串。代码在这里。此代码显示十六进制的字符串表示形式,例如:<代码>74657374202020203f74657374202020202020203f74657374202020020202020203f74657374202020020202020203f3f7d3f77f070840ffffffffffffff

这就是我想展示的:

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

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

共有1个答案

乐正峰
2023-03-14

你可以这样做:

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

代码考虑到原始字符串始终有效。没有支票。

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

 类似资料:
  • 问题内容: 我在ex中有整数。16,我正在尝试将此数字转换为十六进制数字。我试图通过使用十六进制函数来实现此目的,但是每当您向十六进制函数提供整数时,它都会返回十六进制数字的字符串表示形式, 有人可以告诉我如何将字符串格式的十六进制数字转换为简单的十六进制数字。 谢谢!! 问题答案:

  • 问题内容: 我编写了一个简单的程序,用于在Java中向串行端口发送和接收数据。我通过回送测试(Rx到Tx)连接串行端口设备。它工作正常。但我无法发送和接收十六进制数据到串行端口和接收串行端口。在我的设备中使用了FT232BL芯片,因此是否需要任何dll或其他库来将十六进制数据发送和接收到串行端口设备。我的代码如下。 问题答案: 十六进制: 十六进制为:

  • 问题内容: 要将String转换为十六进制,我正在使用: 在此处投票最高的答案中对此进行了概述:在Java中将 字符串转换为十六进制 我该如何反向执行,即将十六进制转换为字符串? 问题答案: 您可以从转换后的字符串中进行重构,这是一种实现方法: 另一种方法是使用,从包: 单元测试以验证: 注:领先剥离的仅仅是必要的,因为的你的填充方法。如果您不介意将其替换为简单的,则可以将此行放在:

  • 问题内容: 我写了一些代码将十六进制显示字符串转换为十进制整数。但是,当输入类似100a或625b(带有字母的东西)时,我得到了这样的错误: java.lang.NumberFormatException:对于输入字符串:java.lang.Integer.parseInt(未知源)处的java.lang.NumberFormatException.forInputString(未知源)处为“ 1

  • 我正在写一个Rust程序,读取I2C总线并保存数据。当我读取I2C总线时,我会得到十六进制值,比如,,等等。 现在,我只能将其作为字符串处理并按原样保存。有没有办法把它解析成一个整数?它有内置的功能吗?

  • 问题内容: 我想将十六进制字符串转换为二进制字符串。例如,十六进制2是0010。下面是代码: 但是,这仅适用于十六进制0-9;它不适用于十六进制A-F,因为它使用。谁能增强它? 问题答案: 您需要告诉Java int是十六进制的,如下所示: