本文介绍了如何在字符串中混洗字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将字符串中的字符混洗(例如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
*/
这篇关于如何在字符串中混洗字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!