如何将字符串值转换为十六进制
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));
}
}
我需要一次生成一个组合,即我有一个数组长度变量和生成组合的数字。
例如长度为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));
}
}