我想了解给定输入字符串的写入排列代码。For循环执行递归
例如:输入字符串:123,输出:123,132,213,231,312,321。
下面的粘贴代码片段可以做到这一点。
public static void main(String args[]) {
permuteString("", "123");
}
public static void permuteString(String beginningString, String endingString) {
if (endingString.length() <= 1)
System.out.println(beginningString + endingString);
else
for (int i = 0; i < endingString.length(); i++) {
try {
// System.out.println(i);
String newString = endingString.substring(0, i) + endingString.substring(i + 1);
permuteString(beginningString + endingString.charAt(i), newString);
} catch (StringIndexOutOfBoundsException exception) {
exception.printStackTrace();
}
}
我得到关于何时整数'i'
在被递增循环,即从i=0 to 1.
一两件事,我从第一次迭代理解是'i'
得到增加到1当它击中的基本情况,即
if (endingString.length() <= 1)
System.out.println(beginningString + endingString);
我试图进一步调试,我的价值保持在0和1之间的连续迭代,我不明白的变化。
总结, 我很困惑第一次迭代后"for loop"
和try块中的两条指令之间的关系。
如果有人能指导我完成整个过程,我会很高兴。