Я хотел зашифровать строку, чтобы сделать ее нечитаемой, и поэтому придумал этот метод:
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;
Итак, я сначала преобразовал строку в массив символов, и в моем методе мне пришлось дублировать массив символов "dummywordarray". При однократном прохождении этого алгоритма каждая буква слова поменяет свое положение. Но она не будет очень хорошо перемешана, в том смысле, что вы сможете собрать ее обратно с первого взгляда. Итак, я передал заданную строку длиной менее 9 символов через метод 7 раз, и слова довольно хорошо зашифрованы, то есть нечитаемы. Но я попробовал это со строкой из 30 символов, и потребовалось 500 проходов, прежде чем я смог гарантировать, что она будет красиво зашифрована. 500! Я уверен, что есть лучший алгоритм, мне бы хотелось посоветовать либо а) улучшить этот метод, либо б) лучший способ.