我正在尝试将一小串十六进制数字转换为整数数组,但到目前为止还不太成功。我尝试在多个网站上找到此类问题,但大多数都发现十六进制数字太大,但这里的情况并非如此。当前代码:
static String decode(String message) {
int indexC = 0;
int asciiCode = 0;
String [] codeArray = message.split(" ");
int [] asciiArray = new int[4];
while (indexC < codeArray.length){
asciiCode = Integer.parseInt(codeArray[indexC]);
asciiArray[indexC] = asciiCode;
}
for (int i = 0; i < asciiArray.length; i++){
System.out.println(asciiArray[i]);
}
}
我确实得到了 system.out.println 的结果,但它打印的不是我期望的 4 个数字,而是与我开始时相同的(十六进制)数字(在本例中:44 74 71 20)
我不允许包含额外的库或包,我只能使用我自己创建的代码和类。我的代码的重点是获取十进制值。 println 只是检查我得到的内容(但如果有人知道如何正确打印该行,也请回复;))。
(更多背景信息:我正在构建一个简单的文本加密器,我现在正在研究解码器,我需要连接到十六进制数字的 ascii 值)
最佳答案
[I@221a5d08
是数组对象本身的字符串表示形式,而不是数组的内容。
如果要打印其内容,请使用 Arrays.toString(int [] a)
:
System.out.println(Arrays.toString(asciiArray));
如果您不允许使用此方法,您可以实现一个简单的 for 循环:
for(int i = 0; i < asciiArray.length; i++)
System.out.print(asciiArry[i]);
关于java - 将小十六进制字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939704/