0
我正在CodingBat中嘗試練習。較少重複的代碼或高效但重複的代碼之間的選擇
Java> String-1> seeColor: 給定一個字符串,如果字符串以「red」或「blue」開頭,則返回該顏色字符串,否則返回空字符串。
我運行的代碼是:
public String seeColor(String str) {
int len = str.length();
if (len >= 3 && str.substring(0, 3).equals("red")) {
return str.substring(0, 3);
} else if (len >= 4 && str.substring(0, 4).equals("blue")) {
return str.substring(0, 4);
}
return "";
}
但我發現這個答案的其他所有網站上:
public String seeColor(String str) {
int len = str.length();
if(len >= 4) {
if(str.substring(0, 4).equals("blue"))
return "blue";
else if(str.substring(0, 3).equals("red"))
return "red";
else
return "";
}
else if(len == 3) {
if(str.substring(0, 3).equals("red"))
return "red";
else
return "";
}
else
return "";
}
我的解決方案具有更少的重複代碼(或者它是什麼,我認爲)。 但另一種解決方案看起來更有效率。它從大字符串開始,並且只評估長度爲3個字符的字符串。也許這最後的解決方案更能夠在未來進行簡單的更改。 我想閱讀某人的意見。謝謝。
編輯:我添加了一個道歉,我沒有按照@MikeDunlavey的建議,適當地格式化我的代碼。
是的,這是一個臭名昭着的改進。我會記住避免對象重複,並尋找像startsWith這樣的其他方法。謝謝你的回答,這是我的第一個問題。 – EMER
@EMER:還要注意Peter的答案是仔細格式化的,既可以用於縮進,也可以查看內容和間距,因此相關的內容直接在上面和下面。有經驗的程序員知道,當看到代碼是否正確或需要更改代碼時,對細節的關注確實有幫助。 –
@MikeDunlavey謝謝,我解決了。這是一個有意識的錯誤,我不確定它在這個站點的代碼塊是如何工作的。但我不知道在哪裏削減長篇大論,我發現你的建議是將相關的事情放在上面和下面,對他們非常有幫助。 – EMER