Java中是否有类似于ucwords的函数?

6
在php中,方法ucwords将字符串中的每个单词的第一个字符转换为大写字母,其他字符转换为小写字母。我经常自己实现这个方法,想知道是否存在标准方法。

2
https://dev59.com/PnM_5IYBdhLWcg3w9oWG - Jarrod Nettles
@Nishant:链接对我有效... - posdef
@posdef 哦,对我没用。事实上,我刚刚在那个答案中更新了正确的链接。顺便说一下,我所说的是答案中给出的WordUtil链接,而不是答案链接。 - Nishant
1
php调用ucwordsupper case words的简写。将小写单词转换为大写单词的过程通常称为“capitalization”。 - Edwin Buck
请注意,对于某些Unicode字符,大写可能会很复杂。在某些语言中,存在大写、小写和标题大小写。有关详细信息,请参阅ICU页面http://userguide.icu-project.org/transforms/casemappings。 - Tommy Siu
显示剩余2条评论
3个回答

8

好的,谢谢提供链接。不过我可能用不上它,因为我正在开发 Android 应用(它不包含 apache org.apache.commons.lang 库)。 - XGouchet
@XGouchet 这很奇怪。 你可以在Android项目中使用外部Jar包。请看这里https://dev59.com/O3M_5IYBdhLWcg3wiDyA - Nishant
@XGouchet 请将你的问题标记为android。 - Nishant
4
是的,我知道我可以这样做,但我希望尽可能保持我的应用程序小巧,并且仅为了这个小特性而集成一个jar包并不是一个好主意。 - XGouchet

5
否则,这是一个相当简单的修复,例如:String string1 = someString.substring(0,1).toUpperCase() + someString.substring(1); 您可以将其放入函数中,并在需要时调用它。这样可以避免维护您不需要的库的麻烦。(并不是说 Apache Commons 会有麻烦,但你懂的..)编辑:someString.substring(1) 部分可以写成 someString.substring(1).toLowerCase(),以确保其余字符串为小写。

4

我不知道是否有直接等价的东西,但是你总可以自己写一个:

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();
   }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接