你的代码有问题,再复一次吧

解决方案 »

  1.   

    用我这个代码就行
    package pk;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;/**
     * 
     * @author lingnag
     * 
     */
    public class FullSort {
    /**
     * 递归算法:将数据分为两部分,递归将数据从左侧移右侧实现全排列
     * 
     * @param datas
     * @param target
     */
    private static void sort(List datas, List target, int size) {
    if (target.size() == size) {
    for (Object obj : target)
    System.out.print(obj);
    System.out.print(" ");
    return;
    }
    for (int i = 0; i < datas.size(); i++) {
    List newDatas = new ArrayList(datas);
    List newTarget = new ArrayList(target);
    newTarget.add(newDatas.get(i));
    newDatas.remove(i);
    sort(newDatas, newTarget, size);
    }
    } public static void main(String[] args) throws IOException {
    InputStream is = System.in;
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    System.out.print("输入一个字符串:");
    String str = br.readLine();
    char[] cArr = str.toCharArray();
    String[] datas = new String[cArr.length];
    int pos = 0;
    for (char ch : cArr) {
    datas[pos++] = new String("" + ch);
    }
    for (int i = 1; i <= datas.length; ++i) {
    sort(Arrays.asList(datas), new ArrayList(), i);
    System.out.println();
    }
    }
    }