【转贴】一段精彩的源代码,值得好好学习!

来源:互联网 发布:沈飞与空军恩怨 知乎 编辑:程序博客网 时间:2024/06/03 23:40

public class ABCDE
{

    public static void main(String[] args)
    {
        ABCDE a = new ABCDE();
        String after = a.order("abcde");
        System.out.println(after);
    }

    public String order(String str)
    {
        char[] ch = str.toCharArray();  //转换str为字符数组并赋值给ch
        boolean[] check = new boolean[ch.length];   //以ch相同的长度产检一个布尔类型的数组
        StringBuffer newOrder = new StringBuffer();

        for (int i = 0; i < ch.length; i++)
        {
            int temp = (int) (Math.random() * ch.length);
            while (check[temp]) // 当check数组、temp位置是true的时候,开始循环
            {
                temp = (int) (Math.random() * ch.length);
                //如果是true(已添加,则跳过,重新random)
            }
            check[temp] = true; //如果false,则赋值true,标记为已添加(False为未添加)
            newOrder.append(ch[temp]);
        }
        return newOrder.toString();
    }
}
 

原创粉丝点击