如何大写字符串中每个单词的第一个字符
Java中内置了一个函数,用于将每个单词的第一个字符转换为字符串,并且不影响其他字符?
例子:
jon skeet
- > Jon Skeet
miles o'Brien
- > Miles O'Brien
(B保留资本,这排除了标题案例) old mcdonald
- > Old Mcdonald
* *( Old McDonald
也可以找到,但我不认为它很聪明。)
快速浏览一下Java String Documentation,只会揭示toUpperCase()
和toLowerCase()
,这当然不会提供所需的行为。 当然,谷歌的结果是由这两个功能主导。 它看起来像是一个必须已经被发明的轮子,所以问以后我可以使用它也不会有什么伤害。
WordUtils.capitalize(str)
(来自apache commons-text)
(注意:如果你需要"fOO BAr"
变成"Foo Bar"
,那么请使用capitalizeFully(..)
来代替)
如果你只是担心第一个字母大写的第一个字母:
private String capitalize(final String line) {
return Character.toUpperCase(line.charAt(0)) + line.substring(1);
}
以下方法将所有字母转换为大写/小写,具体取决于它们在空间或其他特殊字符附近的位置。
public static String capitalizeString(String string) {
char[] chars = string.toLowerCase().toCharArray();
boolean found = false;
for (int i = 0; i < chars.length; i++) {
if (!found && Character.isLetter(chars[i])) {
chars[i] = Character.toUpperCase(chars[i]);
found = true;
} else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]==''') { // You can add other chars here
found = false;
}
}
return String.valueOf(chars);
}
链接地址: http://www.djcxy.com/p/75355.html
上一篇: How to capitalize the first character of each word in a string
下一篇: PHP: Check if array contains another array values (in specific order)