【发布时间】:2017-07-21 08:09:39
【问题描述】:
我正在尝试将 ASCII 字符串转换为 HEX。但由于某种原因,它给了我 ASCII 值而不是 HEX 值。
这是我的代码:
public String toHex(String strToConvert) {
ByteBuffer bb = ByteBuffer.wrap(strToConvert.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
while (bb.hasRemaining()) {
sb.append(bb.get());
}
return sb.toString();
}
函数调用如下:toHex("A");。我做错了什么?
【问题讨论】:
-
您希望在哪里转换为十六进制?你基本上是用每个字节依次调用
StringBuilder.append(int)。 (不清楚你为什么要让ByteBuffer参与其中。)StringBuilder.append(int)被记录为:“将 int 参数的字符串表示附加到这个序列。整体效果就像参数被转换为通过String.valueOf(int)方法创建字符串,然后将该字符串的字符附加到此字符序列中。”这在哪里说明了十六进制转换?