我需要一次生成一個組合,即我有一個陣列長度變數和將生成組合的數量。
例如,一個長度為 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);
}
}
uj5u.com熱心網友回復:
您可以使用
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));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470755.html
上一篇:如何在R中的嵌套括號內反轉字符?
