如何将字符串值转换为十六进制

how to convert string value to hex

我需要一次生成一个组合,即我有一个数组长度变量和生成组合的数字。

例如长度为3,个数为11的数组,即应生成如下序列:

001
002
003
004

等等,直到 101010,我的代码是这样做的,但问题是我不知道如何将大于 9 的数字转换为十六进制

void generatePermutations(int[] intervals, int pos, String lastPerm) {
    if (pos == intervals.length)
        return;

    for (int i = 0; i <= intervals[pos]; i++) {
        if (pos == intervals.length - 1) {
            if ((lastPerm + i).equals(String.format("%0" + intervals.length + "d", 0))) continue;
            System.out.println(lastPerm + i);
        }
        generatePermutations(intervals, pos + 1, lastPerm + i);
    }
}

您可以使用

String.format("%X", i)

将 int 转换为小写的十六进制字符串“%x”。

应用于您的代码,结果为:

void generatePermutations(int[] intervals, int pos, String lastPerm) {
        if (pos == intervals.length)
            return;

        for (int i = 0; i <= intervals[pos]; i++) {
            if (pos == intervals.length - 1) {
                if ((lastPerm + String.format("%X", i)).equals(String.format("%0" + intervals.length + "d", 0))) continue;
                System.out.println(lastPerm + String.format("%X", i));
            }
            generatePermutations(intervals, pos + 1, lastPerm + String.format("%X", i));
        }
    }