如何大写字符串中每个单词的第一个字符

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)