文
章
目
录
章
目
录
学习在 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类将字符串的单词转换为标题大小写,并通过手动拆分每个单词并单独将其大写来创建自定义解决方案。