6
我正在通過CodingBat exercises for Java工作。我遇到以下問題:'佔位符'避免正面比較?
給定2個數組的長度相同的字符串,比較一個數組中的第一個字符串與另一個數組中的第一個字符串,第二個到第二個等等。計算2個字符串非空且以相同字符開始的次數。該字符串可以是任意長度,包括0
我的代碼是這樣的:
public int matchUp(String[] a, String[] b){
int count = 0;
for (int i = 0; i < a.length; i++) {
String firstLetterA = a[i].length() == 0
? "ê"
: a[i].substring(0, 1);
String firstLetterB = b[i].length() == 0
? "é"
: b[i].substring(0, 1);
if (firstLetterA.equals(firstLetterB)) {
count++;
}
}
return count;
}
我的問題是:哪個「佔位」字符將被視爲優良作法是使用以避免firstLetterA
之間不必要的比較和firstLetterB
?
在這種情況下,我只簡單地分配了兩個不同的字母,這些字母很少使用(至少英文版)。我試着用''
(一個空的字符,而不是一個空格),當然,它們是相互匹配的。我也嘗試使用null
,因爲我認爲它不能被正面比較,但也會導致問題。
爲什麼你想/需要一個佔位符?爲什麼不直接比較第一個字符,並在字符串長度爲零時採取另一個操作? – Bohemian
您可以使用'charAt()'而不是'substring()',所以它不會每次都創建一個新的'String'。 –
重要提示:由於字符串之間的合成可能不同,因此如果使用重音字符等東西,則此接受的答案不一定能正常工作。這可能是也可能不是理想的行爲。 – Necreaux