2 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需跳過(guò)空白索引:
char [] letters = {' ', 'a', ' ', 'b', ' ', 'c'};
for(int i = 0; i < letters.length; i++) {
int random = (int) (Math.random()* letters.length);
if (letters[random] == ' ' || letters[i] == ' ') continue; // here
char temp = letters[i];
letters [i] = letters [random];
letters [random] = temp;
}

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用以下邏輯:
char[] letters = { ' ', 'a', ' ', 'b', ' ', 'c', ' ', 'd' };
for (int i = 0; i < letters.length; i++) {
int random = (int) (Math.random() * letters.length);
// observe this
if (!Character.isWhitespace(letters[random]) && !Character.isWhitespace(letters[i])) {
char temp = letters[i];
letters[i] = letters[random];
letters[random] = temp;
}
}
解釋 :
您可以添加一個(gè)簡(jiǎn)單的if條件來(lái)檢查要交換的兩個(gè)元素(即letters[random]和letters[i])是否不是空格。
添加回答
舉報(bào)