关于java:将大写字符串更改为小写,但仅将第一个字符保留为大写

Changing upper case string to lower case, but keep only first character to Upper case

本问题已经有最佳答案,请猛点这里访问。

我有多个大写字符串:

詹姆斯·史密斯,纳文·赫曼特·西格,拉拉·乌蒂泽

如何将这些字符串转换为:

詹姆斯·史密斯、Navin Hemant Signh、Lala Utrizer在爪哇?

请帮忙。


尝试如下操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String values ="JAMES SMITH, NAVIN HEMANT SIGNH, LALA UTRIZER";


if (values != null && !values.isEmpty()) {
    final StringBuilder fixedCaseBuilder = new StringBuilder(values.length()+1);

    for (final String word : values.split("")) {
        if (!word.isEmpty()) {
            fixedCaseBuilder.append(Character.toUpperCase(word.charAt(0)));
            fixedCaseBuilder.append(word.substring(1, word.length()).toLowerCase());
        }
        fixedCaseBuilder.append(' ');
    }

    fixedCaseBuilder.setLength(fixedCaseBuilder.length()-1);
    final String result = fixedCaseBuilder.toString();
}

如果您可以选择要使用的库,我建议您使用ApacheCommonsUtils中的wordUtils。它有一个大写的方法(字符串S),它接受一个字符串并将每个单词的第一个字母大写。