有没有一种简单的方法可以在java中重新排列数字?
基本上简而言之,我想取一个随机数:
73524896
我想要相同的数字,但像这样随机重新排列它:
46932857
有没有一种方法可以在java中轻松做到这一点?
Basically in a nut shell I want to take a random number say:
73524896
and I want to us the same number but randomly rearrange it like this:
46932857
Is there a way I can do this easily in java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这是我最喜欢的解决方案。 (请注意,所有洗牌的可能性都是相同的。)
示例输出:
Here's my favorite solution. (Note that all shufflings are equally probable.)
Sample output:
这将对您有所帮助:随机数 - 洗牌。
不是完整的代码,只是链接中的片段
This will this help you : Random Numbers - shuffling.
Not a complete code, just a snippet from the link
将其转为字符串,获取字符数组,然后将字符数组随机化,然后将其转回字符串。
这可以让你随机化任何字符串,而不仅仅是数字。
turn it into a string, get the character array, then randomize the character array, and turn it back into a string.
that would let you randomize any string, not just numbers.
我想说最简单的方法是将整数解析为字符串,重新排列字符串中的数字,然后将其解析回整数。
I would say the easiest way to do this is to parse the integer to a String, rearrange the digit in the String then parse it back to integer.
(1) 将数字转换为字符串
(2) 使用标准的洗牌算法进行洗牌 (3) 将字符
转换回数字
(1) Convert the number to a string
(2) Use a standard shuffling algorithm to shuffle the characters
(3) Convert back to a number
Collections.shuffle()
接受一个列表并返回一个列表,其中有一个toArray()
。Arrays.asList()
接受一个数组并返回一个列表。 String 有一个 toCharArray() 和一个接受 char 数组的构造函数。整数有toString()
和valueOf()
Collections.shuffle()
takes a list and returns a list, which has atoArray()
.Arrays.asList()
takes an array and returns a list. String has atoCharArray()
and a constructor that accepts a char array. Integer hastoString()
andvalueOf()