String[] str = new String[7];
str[0] = str0;
str[1] = str1;
...
然后用循环嵌套应该就可以了吧

解决方案 »

  1.   

    分太少写一个类,根据传入的数组,返回一维数组,就是可能的排列组合。
    根据传入的一维数组,依次抽取其中元素,并把剩下的其他元素作为参数new成一个新类,把新类的组合结果累加。
    其实是个嵌套循环package steeven;
    import java.util.ArrayList;public class Test {
      public java.util.ArrayList r;
      public Test(ArrayList in) {
        r = new ArrayList();
        if (in.size()==1)
          r.add(in.get(0));
        for (int i=0;i<in.size();i++){
          ArrayList sub = (ArrayList)in.clone();
          String s = (String)sub.remove(i);
          Test other = new Test(sub);
          for (int j=0;j<other.r.size();j++)
            r.add(s+(String)other.r.get(j));
        }
      }
      public static void main(String[] args) {
        ArrayList a = new ArrayList();
        a.add("a");
        a.add("b");
        a.add("c");
        a.add("d");
        Test test = new Test(a);
        for (int i=0;i<test.r.size();i++)
          if ((i+1)%(a.size()-1)==0)
            System.out.println(test.r.get(i).toString());
          else
            System.out.print(test.r.get(i).toString()+",");
      }
    }
      

  2.   

    运行结果:
    abcd,abdc,acbdacdb,adbc,adcbbacd,badc,bcadbcda,bdac,bdcacabd,cadb,cbadcbda,cdab,cdbadabc,dacb,dbacdbca,dcab,dcba注意,上面的例子没优化
      

  3.   

    谢谢steeven(steeven),能否给个联系方式,比如:ICQ?以后可以向你讨教!