我想打乱一个字符串,使它不可读,所以想出了这个方法:
public String scrambleWord(String start_word){
char[] wordarray = start_word.toCharArray();
char[] dummywordarray = start_word.toCharArray();
Random random = new Random();
int r = random.nextInt(wordarray.length-1);
int i = 0;
int j = r+1;
while(i <= r){
dummywordarray[wordarray.length -i-1] = wordarray[i];
i++;
}
while (j <= wordarray.length -1){
dummywordarray[j-r-1] = wordarray[j];
j++;
}
String newword = String.valueOf(dummywa);
return newword;
所以我首先将字符串转换为 char 数组,在我的方法中我必须复制 char 数组“dummywordarray”。通过这个算法,单词的每个字母都会改变位置。但它不会被打乱得很好,从某种意义上说,你一眼就能把它重新组合起来。所以我通过该方法传递了一个少于 9 个字符的给定字符串 7 次,并且这些单词被打乱得相当好,即不可读。但是我用一个 30 个字符的字符串尝试了它,它经过了 500 次传递,然后我才能保证它被很好地打乱了。500!我确信有更好的算法,我想要一些关于 a) 改进此方法或 b) 更好方法的建议。