将字符串转换为十六进制
Convert String to Hexadecimal
我想将这个字符串“123456”转换为十六进制String.format("%016x", "123456")
但是我得到一个错误
Exception in thread "main" java.util.IllegalFormatConversionException: x != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at Asdfsaf.main(Asdfsaf.java:22)
x
的值必须是整数。
String.format("%016x", Integer.valueOf("123456"));
结果:
000000000001e240
您不能像那样将字符串转换为十六进制,只能将数字格式化为 %016x
。
您可以通过解析 "123456"
:
来解决这个问题
String.format("%016x", Integer.parseInt("123456"));
堆栈跟踪表明
x != java.lang.String
明确说明String不能转为16进制。
在将其转换为十六进制之前,您应该先将其解析为整数。
要进行解析,您可以使用
Integer.parseInt(stringVariable);
因此您的代码行将变为:
String.format("%016x", Integer.parseInt("123456"))
希望我有所帮助。
我想将这个字符串“123456”转换为十六进制String.format("%016x", "123456")
但是我得到一个错误
Exception in thread "main" java.util.IllegalFormatConversionException: x != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at Asdfsaf.main(Asdfsaf.java:22)
x
的值必须是整数。
String.format("%016x", Integer.valueOf("123456"));
结果:
000000000001e240
您不能像那样将字符串转换为十六进制,只能将数字格式化为 %016x
。
您可以通过解析 "123456"
:
String.format("%016x", Integer.parseInt("123456"));
堆栈跟踪表明
x != java.lang.String
明确说明String不能转为16进制。 在将其转换为十六进制之前,您应该先将其解析为整数。
要进行解析,您可以使用
Integer.parseInt(stringVariable);
因此您的代码行将变为:
String.format("%016x", Integer.parseInt("123456"))
希望我有所帮助。