Java 中将字符串转换为标题大小写

培训教学 潘老师 8个月前 (09-13) 193 ℃ (0) 扫码查看

学习在 Java 中将字符串转换为标题大小写格式。我们将使用 Apache commons 的WordUtils.capitalizeFully() API 并手动拆分和附加单词。

1. 使用WordUtils

这是最简单直接的解决方案。Apache commons-text提供了WordUtils类,其中包含对 Java String的单词执行操作的实用方法。

1.1. Maven 依赖

开始将在项目中包含最新版本的库。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.4</version>
</dependency>

1.2. 使用WordUtils.capitalizeFully()进行标题大小写转换

CapitalizeFully ()方法将字符串中所有以空格分隔的单词转换为大写单词。在结果字符串中,每个单词都由一个标题大写字符和一系列小写字符组成。

输入 null 字符串返回 null

String string = "how TO Do iN JAVA";
String capitalizedString = WordUtils.capitalizeFully(string);
Assertions.assertEquals("How To Do In Java", capitalizedString);

1.3. 将分隔字符串大写

如果字符串包含很少的分隔符来分割单词,我们可以将分隔符作为第二个参数传递给该方法。

请注意,capitalizeFully()不会从结果字符串中删除分隔符,它仅使用分隔符来标记字符串。

String string = "how-TO Do$iN JAVA";
String capitalizedString = WordUtils.capitalizeFully(string, new char[]{' ', '-', '$'});
Assertions.assertEquals("How-To Do$In Java", capitalizedString);

2. 使用String.split()和StringBuffer

将字符串大写的另一种解决方案是使用空格分隔符(或其他分隔符)手动拆分字符串,并在大写后附加各个标记。令牌资本化的过程如下:

  • 将第一个字符转换为大写
  • 将字符串的其余部分转换为小写
  • 将结果附加到StringBuffer后跟空格(“”)或分隔符
  • 返回结果字符串
public static String titleCase(String inputString) {
  if (StringUtils.isBlank(inputString)) {
    return "";
  }
  if (StringUtils.length(inputString) == 1) {
    return inputString.toUpperCase();
  }
  StringBuffer resultPlaceHolder = new StringBuffer(inputString.length());
  Stream.of(inputString.split(" ")).forEach(stringPart -> {
    if (stringPart.length() > 1) {
      resultPlaceHolder.append(stringPart.substring(0, 1).toUpperCase())
          .append(stringPart.substring(1).toLowerCase());
    } else {
      resultPlaceHolder.append(stringPart.toUpperCase());
    }
    resultPlaceHolder.append(" ");
  });
  return StringUtils.trim(resultPlaceHolder.toString());
}

让我们用几个字符串测试titleCase()函数:

Assertions.assertEquals("Null", titleCase(null));
Assertions.assertEquals("", titleCase(""));
Assertions.assertEquals("How To Do In Java", titleCase("HOW to DO IN jAVA"));
Assertions.assertEquals("How To Do In Java", titleCase("how to do in java"));

三、结论

在这个简短的 Java 字符串教程中,我们学习了使用WordUtils类将字符串的单词转换为标题大小写,并通过手动拆分每个单词并单独将其大写来创建自定义解决方案。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8997.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】