下面是使用調用API方法反轉字符串的兩種方法。請告訴它的做法是適當的理由哪種方法更好,並在以下兩種方法之間進行了優化?
public String functionOne(String str){
char arr[] = str.toCharArray();
int limit = arr.length/2;
for (int i = arr.length-1, j = 0; j < limit; i--, j++) {
char c = arr[i];
arr[i] = arr[j];
arr[j] = c;
}
return new String(arr);
}
public String functionTwo(String str) {
StringBuilder strBuilder = new StringBuilder();
char[] strChars = str.toCharArray();
for (int i = strChars.length - 1; i >= 0; i--) {
strBuilder.append(strChars[i]);
}
return strBuilder.toString();
}
其實當我在長度100000串我的代碼運行,第二個方法了雙倍時間爲第一種方法更好。通過使用System.currentTimeMillis()我發現第一種方法和第二種方法中的執行差異爲1。
我對此不太確定,但我認爲第一種方法更好 – KyelJmD 2013-02-13 09:12:51
更好=更快?更可讀? – 2013-02-13 09:13:27
你的符號不一致:'char arr []'與'char [] strChars'。前者支持主要是爲了緩解從C++的過渡,而後者更易於讀取IMO。 – 2013-02-13 09:15:10