当前位置: 首页 > 面试题库 >

如何在不使用Collections.shuffle(…)的情况下随机播放字符串中的字符?

方嘉言
2023-03-14
问题内容

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


问题答案:

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

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
*/


 类似资料:
  • 有没有办法从数组中选择一个随机字符串,而不再选择该字符串。所有字符串只拾取一次后,程序结束。 这是我当前的系统,publicstaticvoidmain(String[]argv){ 我的问题是,控制台将返回“此人已被选中”等等。并不是说节目结束系统不起作用,因为Rest会过早地起作用。 [1]: https://i.stack.imgur.com/54Eef.png [如您所见,程序结束,尽管没

  • 问题内容: 特别是,我想确保避免Microsoft的BrowserChoice随机代码中的错误。也就是说,我要确保每个字母在每个可能位置出现的可能性均等。 例如,给定“ ABCDEFG”,则返回类似“ GEFBDCA”的内容。 问题答案: String.prototype.shuffle = function () { var a = this.split(“”), n = a.length;

  • 问题内容: 我最近问了这个问题,答案使我加深了理解,但他们并没有解决我遇到的实际问题。因此,我将尝试如下提出类似但不同的问题。 假设我要访问的随机元素。一种方法是: 如果我想多次调用该函数怎么办?我猜我在寻找什么,就像是一个运算符/函数(返回),该函数将元素放在第-th个位置。为什么可以使用但不能通过例如这样的功能来访问此元素? 问题答案: Go中的值存储文本的UTF-8编码字节序列。这是已经做出

  • 我需要使replace方法将该文本行中的开始(包括)和结束之间的字符替换为指定字符串片段中的字符(独占,即索引end-1之前的字符将被替换)。我不能直接或间接地使用StringBuffer类替换(int start,int end,String fragment)方法。我正在尝试使eline.replace(0,3,“abc”);或eline.replace(0,3,“ABC”);工作。

  • 问题内容: 我需要在检查的同时将以下更改为- ,以改善圈复杂度。 但是我不确定我将获得什么价值。 问题答案: Java(版本7之前的版本)在switch / case中不支持String。但是您可以通过使用枚举来达到预期的结果。

  • 问题内容: 如果我错了,请纠正我,ReactIntl​​中的FormattedMessage返回一个由span标记包装的字符串。在ReactIntl​​ 1.2中,我们可以选择仅获取字符串部分。 这是我的问题:ReactIntl​​ 2.0中是否有与之等效的东西?我知道可以通过使用FormattedMessage中的Function-As- Child模式获取字符串 但是,它把我的组件中的“ re