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

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();
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值