下面的代碼必須接受一個字符串並切換兩個字符(隨機生成)stringLength()次的位置。字符的隨機排列Java
但是,有時我會輸出兩位數字或兩位數字。 我已經嘗試了各種各樣的事情,從改變我如何獲得隨機到管理子字符串,我仍然得到這些異常。
Scanner in = new Scanner(System.in);
String word = in.next();
for (int wordLength = word.length(); wordLength >= 0; wordLength--){
int i = (int) (Math.random() * (wordLength - 1));
int j = 0;
// j has to be bigger than i.
while (j < i){
j = (int) ((Math.random() * wordLength));
}
String first = word.substring(0, i);
String middle = word.substring(i, j);
String last = word.substring(j);
word = first + word.charAt(j) + middle + word.charAt(i) + last;
System.out.println(word);
}
問題是來自Java的每個人,但它是特別不是作業。
感謝您的想法
從你寫的問題來看,爲什麼不通過生成兩個隨機索引並交換str.length()次那些索引處的字符來簡化代碼? – hrv