我有這個Java函數應該將字符串s
轉換爲標題大小寫。它應該返回拷貝的s
給呼叫者,保留s
。Java toTitleCase函數
當前,rv
以空字符串結尾。誰能告訴我爲什麼?
private static String titleCase(String s) {
String rv = new String();
StringTokenizer strtok = new StringTokenizer(s);
// handle the potential null error: (should really output a runtime warning here)
if(s == null) return null;
while(strtok.hasMoreTokens()) {
String word = strtok.nextToken();
String firstLetter = word.substring(0,1);
String restOfWord = word.substring(1);
rv.concat(firstLetter.toUpperCase() + restOfWord.toLowerCase());
}
return rv;
}
如果你正在做空檢查(或拋出異常),你應該先做這件事,在方法中的_anything_ else之前;爲什麼要創建'StringTokenizer'如果它不會被使用? (儘管優化器可能足夠聰明以重新排序,但它對維護程序員來說會更好) – 2012-02-15 21:41:46
因爲我是C程序員。我無法打破在代碼之前放置變量聲明的習慣。不過,謝謝你指出,我應該重新排序。 – 2012-02-15 21:50:13