我正在尝试理解下面编写的代码。我可以跟上它。我想我理解第一个结果是如何实现的,但不确定其余的结果。以下是代码和我的解释。
代码:
public static void main(String [] args)
{
String str ="abc";
permuatation(str,"");
}
private static void permuatation(String str, String current) {
if(str.equals(""))
{
System.out.printf("Result: %s",current);
System.out.println();
}
else
{
for (int i = 0; i < str.length(); i++)
{
char c= str.charAt(i);
permuatation(str.substring(0, i)+ str.substring(i+1), current + c);
}
}
我对字符串的解释,例如abc;
1.for i = 0;我&lt;比字符串长度;增量我
2.at index i转换为字符(a);
3.run置换方法使用子串的参数(剩余字符-bc)和(当前字符a);
4.现在使用字符串bc
5.for i = 0;我&lt;比字符串长度;增量我
6.at index i转换为字符(b);
7.run置换方法使用子串的参数(剩余字符-c)和(当前字符ab);
8.for i = 0;我&lt;比字符串长度;增量我
9.at index i转换为字符(b);
10.run置换方法使用substring参数(其余字符 - )和(当前字符abc);
11 as string =“”打印当前字符abc
其他排列如何实现?任何指导都将非常感谢。