首页 >Java >java教程 >如何在 Java 中将字符串与十六进制相互转换?

如何在 Java 中将字符串与十六进制相互转换?

Barbara Streisand
Barbara Streisand原创
2024-12-24 17:24:29190浏览

How to Convert Strings to and from Hexadecimal in Java?

在 Java 中将字符串转换为十六进制

在 Java 中将字符串转换为十六进制是一项简单的任务,可以使用 String.format 完成() 方法。具体操作方法如下:

public String toHex(String arg) {
    return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/)));
}

在此代码中,BigInteger(1, arg.getBytes()) 行将字符串转换为 BigInteger 对象,该对象表示任意精度的非负整数。 1 参数指定整数以小端字节顺序表示。

然后 String.format(" 0x") 行将 BigInteger 对象格式化为十六进制字符串。 0x 格式说明符指定字符串应该用零填充,总宽度为 40 个字符。

将十六进制字符串转换回字符串

转换十六进制字符串返回字符串与上面描述的转换过程类似,但方向相反。具体操作方法如下:

public String fromHex(String hex) {
    byte[] bytes = new BigInteger(hex, 16).toByteArray();
    return new String(bytes, /*YOUR_CHARSET?*/);
}

在此代码中,new BigInteger(hex, 16) 行将十六进制字符串转换为 BigInteger 对象。 16 参数指定字符串以十六进制格式表示。

toByteArray() 方法将 BigInteger 对象转换为字节数组。

最后,新的 String(bytes) 行将转换使用指定字符集将字节数组转换为字符串。

以上是如何在 Java 中将字符串与十六进制相互转换?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn