java - 将小十六进制字符串转换为整数

标签 java integer hex converters decoding

我正在尝试将一小串十六进制数字转换为整数数组,但到目前为止还不太成功。我尝试在多个网站上找到此类问题,但大多数都发现十六进制数字太大,但这里的情况并非如此。当前代码:

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/

相关文章:

java - 在哪里可以找到java方法的时间复杂度?

java - 如何从Java中的列读取数组?

Python 将特定数据框列转换为整数

c++ - 将 uint64_t rdtsc 值转换为 uint32_t

swift - 'scanHexInt32' 在 iOS 13.0 中被弃用

java - 在测试类中模拟私有(private)静态最终变量

C:反转 int 的递归函数

c - 以十六进制读取2个字节并使用C语言fscanf转换为十进制

c++ - 从文件的通用十六进制表示法中提取值

java - 根据jsp中的输入选择表