【问题标题】:Is there an equivalent of ucwords in javajava中是否有等效的ucwords
【发布时间】:2011-07-05 20:40:25
【问题描述】:

在 php 中,ucwords 方法将字符串中的任何字符串转换为每个单词的第一个字符为大写,所有其他字符为小写。

我总是最终自己实现,我想知道是否存在标准方法。

【问题讨论】:

  • @Jarrod -- 链接已损坏。 Apache StringUtils 遵循 WordUtils 算法。如JavaDoc中所述
  • @Nishant:该链接对我有用...
  • @posdef 哦。不适合我。事实上,我刚刚更新了该答案中的正确链接。顺便说一句,我说的是答案中给出的 WordUtil 链接,而不是答案的链接。
  • php 调用ucwordsupper case words 的简写。将小写单词转换为大写单词的过程通常称为capitalization

标签: java php android


【解决方案1】:

我不知道有什么直接的等价物,但你总是可以写一个:

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

【讨论】:

    【解决方案2】:

    这叫做大写。使用 Apache Commons 的 StringUtils 来做that

    在这里查看更多:

    http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

    WordUtils 也值得一看。见here

    【讨论】:

    • 好的,谢谢你的链接。不过,由于我正在使用 Android(不包括 apache org.apache.commons.lang 库),因此我无法使用它。
    • @XGouchet 这很奇怪。您可以在 Android 项目中使用外部 Jar。看这里stackoverflow.com/questions/1334802/…
    • @XGouchet 请将您的问题标记为 android
    • 是的,我知道我可以,但我想让我的应用程序尽可能小,并且仅为这个小功能集成一个 jar 不是一个好主意。
    【解决方案3】:

    否则这是一个相当简单的修复,例如; String string1 = someString.substring(0,1).toUpperCase() + someString.substring(1);

    您可以将它放在一个函数中,并在需要时调用它。省去了维护不需要的库的麻烦。 (并不是说 apache commons 有问题,但你明白了..)

    编辑:someString.substring(1) 部分可以写成someString.substring(1).toLowerCase() 只是为了确保字符串的其余部分是小写的

    【讨论】:

      猜你喜欢
      • 2012-05-24
      • 2011-10-14
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 2010-09-30
      相关资源
      最近更新 更多