gpt4 book ai didi

java - 从数组中取出字符并将它们随机放置以创建字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:56 25 4
gpt4 key购买 nike

我有一个 char 数组(大小为 12),看起来像这样:

{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'}  

我想创建(以最有效的方式)一个字符串,它是从数组中取出字符并随机排序的结果(让我们使用那个词),例如:

“ahbejclfkdig”

我尝试了StringBuffer和随机放置的解决方案,但存在位置重复的问题。另外,我尝试了 Collections.shuffle,但我不太了解这个。我还查看了线性反馈移位寄存器,但我认为这里不合适。这是一个非常简单的案例,我不会对大数进行操作,因此内存分配和速度应该不会引起任何重大问题。

最佳答案

您可以使用 shuffle,但将其更改为 StringBuilder。除非您必须使用旧版本的 Java,否则我不会使用 StringBuffer。

public static void main(String... args) {
StringBuilder sb = new StringBuilder("abcdefghijkl");
for (int i = 0; i < 5; i++) {
shuffle(sb);
System.out.println(sb);
}
}


public static void shuffle(StringBuilder sb) {
Random rand = new Random();
for (int i = sb.length() - 1; i > 1; i--) {
int swapWith = rand.nextInt(i);
char tmp = sb.charAt(swapWith);
sb.setCharAt(swapWith, sb.charAt(i));
sb.setCharAt(i, tmp);
}
}

打印

kbljdhieagcf
gefabkhdclij
hbkfjilcgade
eacihdkjfgbl
hbjcfegdilka

关于java - 从数组中取出字符并将它们随机放置以创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7091436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com