争夺字符串

时间:2013-05-03 16:06:31

标签: java string random

我如何将数组字中的每个字符串随机化为“位置”到“Psioiont”。基本上我需要做的是我想要一个有趣的方式来展示一个人在他能回答之前必须思考...

你好---> “hlelo”

public class Rnd {
    public static void main(String[] args) {

       List  list = new ArrayList();
       Collections.shuffle(list);

       String[] words =new String[]{"Position", "beast", "Hello"};
       Collections.shuffle(Arrays.asList(words)); 
    }
}

2 个答案:

答案 0 :(得分:0)

将每个字符串转换为字符数组并在其上调用shuffle,然后再次创建字符串。

当然,这实际上并不适用于真正的Unicode - 如果那里可能存在非BMP字符或复合字符,则没有简单的方法。但它可能适用于这种小游戏。

答案 1 :(得分:0)

只需将每个字符串中的字符放入列表中,然后调用Collections.shuffle(),然后将它们放回字符串中:

    String x = "hello";
    List<Character> list = new ArrayList<Character>();
    for(char c : x.toCharArray()) {
        list.add(c);
    }
    Collections.shuffle(list);
    StringBuilder builder = new StringBuilder();
    for(char c : list) {
        builder.append(c);
    }
    String shuffled = builder.toString();

    System.out.println(shuffled); //e.g. llheo