生成给定字符串的有序排列

时间:2014-01-15 16:53:49

标签: java android

给出一句像"一两三四"如何在有序排列中迭代单词列表?

这就是我想要实现的目标

"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 :(得分:1)

你需要的只是一个双for循环,并确保在外循环的索引处启动内循环(在你完成所有排列之后将省略“one”)

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);
    }
}