我想了解給定輸入字符串的寫入排列代碼。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塊中的兩條指令之間的關係。
如果有人能指導我完成整個過程,我會很高興。