Java中是否内置了一个函数,使字符串中每个单词的第一个字符大写,而不影响其他字符?
例子:
乔恩·斯基特->乔恩·斯基特
miles o'Brien -> miles o'Brien (B仍然是大写,这排除了Title Case)
老麦当劳->
*(老麦当劳也会被发现,但我不指望它有那么聪明。)
快速浏览一下Java字符串文档就会发现只有toUpperCase()和toLowerCase(),它们当然没有提供所需的行为。当然,谷歌的结果主要是这两个函数。它看起来像一个已经被发明出来的轮子,所以问一下也无妨,这样我以后就可以用它了。
来自Java 9+
你可以像这样使用String::replaceAll:
public static void upperCaseAllFirstCharacter(String text) {
String regex = "\\b(.)(.*?)\\b";
String result = Pattern.compile(regex).matcher(text).replaceAll(
matche -> matche.group(1).toUpperCase() + matche.group(2)
);
System.out.println(result);
}
例子:
upperCaseAllFirstCharacter("hello this is Just a test");
输出
Hello This Is Just A Test