首页 > 解决方案 > Java将字符串数组中每个单词的首字母大写

问题描述

抱歉,目前在移动设备上。

我有一个值ABC、DEF、GHI的字符串数组,我想将其更改为大写形式:Abc、Def、Ghi

我的代码看起来像这样:

import org.apache.commons.lang3.text.WordUtils;

....

final String[] split = stringToConvert.split(", ");

final StringBuilder sb = new StringBuilder();

for ( String s : split) {
   //s = WordUtils.capitalizeFully(s.toLowerCase());

  if (sb.length() > 0) {
    sb.append(", ");
  }
  sb.append(WordUtils.capitalizeFully(s.toLowerCase()));
}

return sb.toString();

第一个值始终是 abc,但第二个和后面的值是正确的,例如 Def, Ghi。我不知道为什么第一个值保持小写。

任何帮助,将不胜感激!

标签: javaarrays

解决方案


再次检查您的代码。

StringBuilder buf = new StringBuilder();

for (String str : new String[]{"ABC", "DEF", "GHI"})
    buf.append(WordUtils.capitalizeFully(str.toLowerCase()));

System.out.println(buf);

按预期打印AbcDefGhi

如果您使用,它可能会更简单Stream

String res = Stream.of("ABC", "DEF", "GHI")
        .map(WordUtils::capitalizeFully)
        .collect(Collectors.joining(", "));    // if you want to split words with comma

推荐阅读