文章目录 1. 使用WordUtils 1.1. Maven 依赖 1.2. 使用WordUtils.capitalizeFully()进行标题大小写转换 1.3. 将分隔字符串大写 2. 使用String.split()和StringBuffer ……
文
章
目
录
- 1. 使用WordUtils
- 2. 使用String.split()和StringBuffer
- 三、结论
学习在 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类将字符串的单词转换为标题大小写,并通过手动拆分每个单词并单独将其大写来创建自定义解决方案。
还没有评论呢,快来抢沙发~