一个一个往hashset里塞,然后拿出来。
循环产生一个随机数(小于字符串长度),然后从字符串中截取这个随机数对应位置的字符加入一个list,最后拿出来。

解决方案 »

  1.   


    import java.util.Random;public class Test { public String randString(String str) {
    StringBuffer result = new StringBuffer();
    int length = str.length();
    char[] chars = str.toCharArray();
    // 数组下标
    int index = -1;
    while (true) {
    // 随机 生成 下标
    index = new Random().nextInt(length);
    // 是否为空
    if (chars[index] != ' ') {
    result.append(chars[index]);
    // 全部获取完毕
    if (result.length() == length) {
    break;
    }
    // 置空
    chars[index] = ' ';
    } else
    continue;
    }
    System.out.println(result);
    return result.toString();
    } public static void main(String[] args) {
    String str = "KASDFADFOAI";
    // 测试 20次吧。。
    for (int i = 0; i < 20; i++)
    new Test().randString(str);
    }
    }不说了    看代码
      

  2.   

    public static void main(String[] args) {
    String str = "ABCDEFG";
    HashSet hs = new HashSet();
    for(int i = 0; i < str.length(); i++){
    hs.add(str.substring(i, i+1));
    }
    StringBuffer sb = new StringBuffer();
    Iterator iter = hs.iterator();
    while(iter.hasNext())
    sb.append(iter.next());
    System.out.println(sb.toString());
    }
      

  3.   

    import java.util.Random;public class Test {
        
        public static void main(String[] args) {
            String str = "KASDFADFOAI";
            System.out.println(confuse(str));        
        }
        
        private static String confuse(String str) {
            if(str == null || str.trim().length() == 0) {
                return str;
            }
            char[] chs = str.toCharArray();
            Random ran = new Random();
            for(int i = 0, k = chs.length * 2; i < k; i++) {
                int first  = ran.nextInt(k) % chs.length;
                char t = chs[first];
                int second = ran.nextInt(k) % chs.length;            
                chs[first] = chs[second];
                chs[second] = t;
            }
            return new String(chs);
        }
    }