2011-10-06 130 views
3

需要找到更多優化的Java編碼方法。java最佳實踐

這是一個非常簡單的示例代碼

int index1 = line.indexOf(" ", word1.length() + 1); 
if (!line.isEmpty() && index1 != -1) { 
line = line.substring(word1.length(), index1).trim().toLowerCase(); 
} 

if(!line.isEmpty() && line.indexOf(" ",word1.length()+1) != -1){ 
line = line.substring(word1.length(), index1).trim().toLowerCase(); 
} 

後來我發現是最你有更好的代碼的可讀性,或者更優化的代碼之間做出選擇的時代。哪一個更好?

+0

對於他們之前沒有誰Java環境,或不喜歡一個編譯器的人;我建議也寫一個輸入行的例子和預期的結果。 – darioo

+0

@Ali - 你什麼時候會接受像你說的那樣的答案? –

+0

斯蒂芬我正在那樣做。說真的,我對這個論壇並不熟悉,我正在努力應對所有的規則。 – Ali

回答

17

在性能提升的邊際或不完全有理由所有的情況下,瞄準

可讀性

+0

+1:如果您看到將來有改進的空間,請將其設置爲可讀,但不要太難以優化。 – darioo

+0

但在這個例子中,第二種方法會更好,如果聲明一個像index1這樣的新變量,假設代碼在一個大循環內,並且變量將在每次啓動時更好。謝謝 – Ali

+1

@Ali,可讀性在很多方面**主觀**。 **我認爲第一種方法更具可讀性,儘管您可以通過使用例如分詞器來進一步改進它,就像solovyev指出的那樣。 –

1

在特定情況下,最好的解決辦法是使用StringTokenizer的,你會不會有這個問題(我的意思是可讀性)

0

不確定你想要達到的目標 - word1是第一行嗎?

如果是的話,我會考慮大致如下更具可讀性的東西:

String parts[] = line.split(" +"); 
if (parts.length > 1) { 
    line = parts[1]; 
}