2014-01-15 55 views
0

給定一個像「one two three four」這樣的句子,我將如何迭代有序排列中的單詞列表?生成給定字符串的有序排列

這就是我想要達到

"one" 
"one two" 
"one two three" 
"one two three four" 
"two" 
"two three" 
"two three four" 
"three" 
"three four" 
"four" 

我分裂使用空間分隔符的話,但不能工作了遍歷所有組合用文字保存在當前訂單的方法。

List<String> product_words = new ArrayList<String>(Arrays.asList(productname.split(" "))); 
    for (int x = 0; x < product_words.size(); x++) { 
     //stuck here 
    } 

在此先感謝

+1

這惡臭的功課。 –

+0

@NathanielWaggoner和???? – Simon

+0

我52歲,所以我懷疑它! – Mark

回答

1

所有你需要的是一個雙循環for,並確保外環的索引處開始的內循環(這將省去「一」,你以後經歷了所有的排列)。

ArrayList<String> product_words = new ArrayList<String>(); 
product_words.add("one"); 
product_words.add("two"); 
product_words.add("three"); 
product_words.add("four"); 

for (int i = 0; i < product_words.size(); i++) { 
    String s = ""; 
    for (int j = i; j < product_words.size(); j++) { 
     s += product_words.get(j); 
     s += " "; 
     System.out.println(s); 
    } 
} 
+0

謝謝你的更新 – Mark

+0

@turbo nope,它絕對有效;) – Tyler

相關問題