2011-02-28 48 views
5

在php中,方法ucwords轉換字符串中的任何字符串,其中每個單詞的第一個字符都是大寫字母,而其他所有字符都是小寫字母。java中是否有相同的ucwords

我總是最終做出我自己的實現,我想知道是否存在標準方法。

+2

http://stackoverflow.com/questions/1149855/how-to-upper-case-every-first-letter-of-word- in-a-string – 2011-02-28 15:32:22

+0

@Jarrod - 鏈接已損壞。 Apache StringUtils遵循WordUtils算法。正如在JavaDoc – Nishant 2011-02-28 15:35:10

+0

@Nishant中提到的那樣:鏈接對我來說很有用...... – posdef 2011-02-28 15:37:45

回答

8

這就是所謂的大小寫。使用Apache Commons的StringUtils來做that

更多,請參閱:

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

WordUtils也值得一看。見here

+0

好的謝謝你的鏈接。儘管如此,我仍然無法使用它,因爲我正在使用Android(不包括apache org.apache.commons.lang庫)。 – XGouchet 2011-02-28 15:44:33

+0

@XGouchet這很奇怪。你**可以**在Android項目中使用外部Jar。看到這裏http://stackoverflow.com/questions/1334802/how-can-i-use-external-jars-in-an-android-project – Nishant 2011-02-28 15:47:24

+0

@XGouchet請標記您的問題作爲android – Nishant 2011-02-28 15:48:21

5

否則,這是一個相當簡單的修復,例如; String string1 = someString.substring(0,1).toUpperCase() + someString.substring(1);

你可以把它放在一個函數中,並隨時調用它。爲您節省維護您不需要的庫的麻煩。 (不是Apache的百科全書是有史以來麻煩,但你明白了吧..)

編輯:someString.substring(1)部分可以寫成someString.substring(1).toLowerCase()只是爲了確保該字符串的其餘部分是小寫

2

我不知道任何直接等同,但你總是可以寫一個:

public static String capitalize(String input) { 
    if (input == null || input.length() <= 0) { 
    return input; 
    } 
    char[] chars = new char[1]; 
    input.getChars(0, 1, chars, 0); 
    if (Character.isUpperCase(chars[0])) { 
    return input; 
    } else { 
    StringBuilder buffer = new StringBuilder(input.length()); 
    buffer.append(Character.toUpperCase(chars[0])); 
    buffer.append(input.toCharArray(), 1, input.length()-1); 
    return buffer.toString(); 
    } 
} 
相關問題