需求如下: 
二维动态字符串数组,如String[][] array=new String[][]{{"1","2","a","b"}} 
现在要遍历这个数组,生成所有可能的字符串组合,比如1a,1b,2a,2b 
如何实现?

解决方案 »

  1.   

    该问题不明确。
    首先,你的定义中只有一维有用,第二维没有用。那么我们写的算法是需要遍历一维还是二维?
    其次,是生成所有两个字母的组合吗?1ab,2ab,12a,12ab需要生成吗?
    请楼主把上述两个问题整理清楚一下。
      

  2.   

    二维动态字符串数组,如String[][]  array=new  String[][]{{"1","2"},{"a","b"}}  
    不好意思,写错了。
     每一维必取且只取一个字符串。
      

  3.   

    应该不会很难吧。String[][] array=new String[][]{{"1","2","3"},{"a","b","c"}};
            for (int i=0;i<array[0].length;i++){
                for (int j=0;j<array[1].length;j++){
                    System.out.println(array[0][i] + array[1][j]);
                }
            }
      

  4.   

    to trumplet(检查) 
    你那样只处理了,【2】【n】维的数组,我现在是【n】【m】维的数组。比如说,数组是{{1,2},{a,b},{c,d}} ,你那个就不正确了。
      

  5.   

    trumplet(检查)
    不是n维,是二维动态的数组【n】【m】。
    关键是你无法确定n是多少,就没法知道写几个for循环了。
      

  6.   

    navence(卡西C) 
    能给出个大概的代码吗?
      

  7.   

    public static void main(String[] args) throws Exception {
      String[][] array = new String[][] { { "1", "2", "3" }, { "+", "-" }, { "a", "b", "c" }, { "=" } };
      for (int i = 0; i < array[0].length; i++) {
        String s = array[0][i];
          add(array, s, 0);
      }
    }public static void add(String[][] array, String s, int i) {
      int k = i + 1;
      if (k < array.length) {
        for (int l = 0; l < array[k].length; l++) {
          String s1 = s + array[k][l];
          add(array, s1, k);
          if (k == array.length - 1) {
            System.out.println(s1);
          }
        }
      }
    }