文字列をスクランブリングして読みにくくしたかったので、次のメソッドを思いつきました。
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」を複製する必要がありました。このアルゴリズムを1回通過すると、単語のすべての文字の位置が変更されます。しかし、一目で元に戻すことができるという意味で、うまくスクランブルされることはありません。そのため、9文字未満の特定の文字列をメソッドに7回渡しましたが、単語はかなりスクランブルされています。つまり、判読できません。しかし、30文字の文字列で試してみたところ、うまくスクランブルされていることを保証できるようになるまでに500パスかかりました。500!より良いアルゴリズムがあると確信しています。a)この方法を改善するか、b)より良い方法についてアドバイスをお願いします。