String 配列内の値のすべての可能な順列を返そうとしています。考えられるすべての順列を作成する次のコードを思いつきました。それは正常に動作します。
private void combineArray(String sPrefix, String[] sInput, int iLength) {
if (iLength == sPrefix.length()) {
//This value should be returned and concatenated:
System.out.println(sPrefix);
} else {
for (int i=0; i<sInput.length; i++) {
combineArray(sPrefix.concat(sInput[i]), ArrayUtils.removeElement(sInput, sInput[i]), iLength);
}
}
}
{x, y ,z} を入力すると、コンソールに出力されます。
xyz
xzy
yxz
yzx
zxy
zyx
私の問題は、これらの値を元の呼び出し関数に返す方法が見つからないことです。したがって、この関数が 'void' を返すのではなく、sPrefix の連結された値を含む 'String' を返すようにしたいと思います。
私はしばらくこれに苦労してきましたが、もうはっきりと見えないようです。:) どんな助けでも大歓迎です。