如何使用Java将字符串中的第一个字母大写?

diy*_*iya 214 java

示例字符串

one thousand only
two hundred
twenty
seven
Run Code Online (Sandbox Code Playgroud)

如何更改大写字母中字符串的第一个字符而不更改任何其他字母的大小写?

改变之后应该是:

One thousand only
Two hundred
Twenty
Seven
Run Code Online (Sandbox Code Playgroud)

注意:我不想使用apache.commons.lang.WordUtils来执行此操作.

Whi*_*g34 531

如果您只想将命名字符串的第一个字母大写input,请将其余字母留下:

String output = input.substring(0, 1).toUpperCase() + input.substring(1);
Run Code Online (Sandbox Code Playgroud)

现在output将拥有你想要的东西.input在使用之前检查您的字符长度是否至少为一个字符,否则您将获得例外.

  • 此外,我将首先获取整个输入并使其为小写或重写您的示例,如下所示:String output = input.substring(0,1).toUpperCase()+ input.substring(1).toLowerCase(); (36认同)
  • 并且您想检查字符串的长度,因为它可能是 1 个字母的字符串,甚至是 0。 (2认同)

Ant*_*her 83

public String capitalizeFirstLetter(String original) {
    if (original == null || original.length() == 0) {
        return original;
    }
    return original.substring(0, 1).toUpperCase() + original.substring(1);
}
Run Code Online (Sandbox Code Playgroud)

只是...一个完整的解决方案,我看到它刚刚结束了所有其他人最终发布= P的结果.

  • 尼斯.我"单行"它:`return original.length()== 0?original:original.substring(0,1).toUpperCase()+ original.substring(1);` (11认同)
  • @mharper:`if length()== 0`,我们不能安全地说它是````并返回而不是`original`?在单行中保存几个字符.我问,因为我觉得Java是一种充满了问题的语言,如果有其他方法可以使用长度为零的字符串,我真的不会感到惊讶. (2认同)

Has*_*eeb 74

最简单的方法是使用org.apache.commons.lang.StringUtils

StringUtils.capitalize(Str);

  • 这里有点侧面注意.它仅适用于尚未大写的字符串. (8认同)
  • @jobbert请澄清你的评论.如果字符串已经大写,那么它会不会被大写,尽管它是一个名为`capitalize`的方法? (4认同)

Igo*_*bak 21

此外,还有org.springframework.util.StringUtilsSpring框架:

StringUtils.capitalize(str);
Run Code Online (Sandbox Code Playgroud)


ema*_*l07 8

StringUtils.capitalize(str)

来自apache commons-lang.

  • 重复[Haseeb答案](/sf/answers/2553249961/). (4认同)

Sam*_*RAK 6

String sentence = "ToDAY   WeAthEr   GREat";    
public static String upperCaseWords(String sentence) {
        String words[] = sentence.replaceAll("\\s+", " ").trim().split(" ");
        String newSentence = "";
        for (String word : words) {
            for (int i = 0; i < word.length(); i++)
                newSentence = newSentence + ((i == 0) ? word.substring(i, i + 1).toUpperCase(): 
                    (i != word.length() - 1) ? word.substring(i, i + 1).toLowerCase() : word.substring(i, i + 1).toLowerCase().toLowerCase() + " ");
        }

        return newSentence;
    }
//Today Weather Great
Run Code Online (Sandbox Code Playgroud)