![](/img/trans.png)
[英]How can I use For loops to reduce the number of lines in the following code?
[英]How to make the following code dynamic/ can I inject for loops?
我有一個程序可以打印給定字符串的所有排列可能性。 但這是靜態的,我假設該字符串的長度為3,所以我將3硬編碼為循環。但是,如果我必須使它成為動態字符串,那么用戶可能會輸入一個長度為5的字符串。所以我要問的是我可以根據用戶的輸入注入循環嗎?
import java.util.*;
import java.lang.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
String input = "abc";
int i=0,j=0,k=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
for(k=0;k<3;k++){
System.out.println(input.charAt(i)+""+input.charAt(j)+""+input.charAt(k));
}
}
}
}
}
不,注入循環是不可行的(不幸的是,這會使語言一團糟!)
通常使用遞歸來實現這樣的任務,該遞歸可以輕松地用於生成(字符串,數組或其他任何東西)排列。
如果您真的不想使用遞歸,則可以使用其他方法,例如,可以通過循環旋轉來計算置換-但是這些方法通常很難遵循(和編寫)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.