如何在不使用Collections.shuffle(...)的情况下随机播放字符串中的字符? [英] How to shuffle characters in a string without using Collections.shuffle(...)?

查看:127
本文介绍了如何在不使用Collections.shuffle(...)的情况下随机播放字符串中的字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将字符串中的字符随机播放(例如,hello可以是ehlol或lleoh或...).我不想使用Collections.shuffle(...)方法,有没有更简单的方法?

How do I shuffle the characters in a string (e.g. hello could be ehlol or lleoh or ...). I don't want to use the Collections.shuffle(...) method, is there anything simpler?

推荐答案

我不知道更简单的方法.但是您可以使用Math.rand()功能在字符长度范围内生成一个随机数,而无需替换,这会给您带来混乱的输出结果

I dont know anything simpler. But you can use the Math.rand() functionality to generate a random number within the range of the character's length without replace and that would give you a shuffled output

public class Shuffle {
    public static void main(String[] args) {
        Shuffle s = new Shuffle();
        s.shuffle("hello");

    }
    public void shuffle(String input){
        List<Character> characters = new ArrayList<Character>();
        for(char c:input.toCharArray()){
            characters.add(c);
        }
        StringBuilder output = new StringBuilder(input.length());
        while(characters.size()!=0){
            int randPicker = (int)(Math.random()*characters.size());
            output.append(characters.remove(randPicker));
        }
        System.out.println(output.toString());
    }
}
/*
Sample outputs
hlleo
llheo
leohl
lleho
*/

这篇关于如何在不使用Collections.shuffle(...)的情况下随机播放字符串中的字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆