string s = "86,87|57|47,69";//接收一个字符串,进行|分割成数组,这个是动态的,数组不知道有多少个 ,也可能是86,87|57|47,69|98,78
            //打印出组合,如        
            //86,57,47
            //86,57,69
            //87,57,47
            //87,57,69
            //如果是86,87|57|47,69|98,78
            //打印出组合,如        
            //86,57,47,98
            //86,57,47,78
            //86,57,69,98
            //86,57,69,78
            //87,57,47,98
            //87,57,47,78
            //87,57,69,98
            //87,57,69,78

解决方案 »

  1.   


    public class Test {
    public static void main(String[] args) {
    String s = "86,87|57|47,69";
    String data = "";
    String[] dataStrArray = s.split(",");
    doSomthing(dataStrArray, 0, data);
    } public static void doSomthing(String[] dataStrArray, int index, String data) {
    String[] temp = dataStrArray[index].trim().split("\\|");
    for (String ss : temp) {
    if (index == dataStrArray.length - 1) {
    data += ss;
    System.out.println(data);
    data = data.replace(ss, "");
    } else {
    data += ss + ",";
    index += 1;
    doSomthing(dataStrArray, index, data);
    index -= 1;
    data = data.replace(ss + ",", "");
    }
    }
    }
    }
      

  2.   


    public class Test {
    public static void main(String[] args) {
    String s = "86,87|57|47,69";
    String data = "";
    String[] dataStrArray = s.split(",");
    doSomthing(dataStrArray, 0, data);
    } public static void doSomthing(String[] dataStrArray, int index, String data) {
    String[] temp = dataStrArray[index].trim().split("\\|");
    for (String ss : temp) {
    if (index == dataStrArray.length - 1) {
    data += ss;
    System.out.println(data);
    data = data.replace(ss, "");
    } else {
    data += ss + ",";
    index += 1;
    doSomthing(dataStrArray, index, data);
    index -= 1;
    data = data.replace(ss + ",", "");
    }
    }
    }
    }
      

  3.   

    哦,1L算法完全正确,不过好像看错题目了,第一步是按照“|”分割,第二步是“,”分割public class Test{
        public static void main(String[] args) {
            String s = "86,87|57|47,69";
            String data = "";
            String[] dataStrArray = s.split("\\|");
            doSomthing(dataStrArray, 0, data);
        }    public static void doSomthing(String[] dataStrArray, int index, String data) {
            String[] temp = dataStrArray[index].trim().split(",");
            for (String ss : temp) {
                if (index == dataStrArray.length - 1) {
                    data += ss;
                    System.out.println(data);
                    data = data.replace(ss, "");
                } else {
                    data += ss + ",";
                    index += 1;
                    doSomthing(dataStrArray, index, data);
                    index -= 1;
                    data = data.replace(ss + ",", "");
                }
            }
        }
    }