Apache Commons Text 是 Apache Commons 项目中的一个模块,专注于文本处理和字符串操作。它提供了许多实用的工具类和方法,帮助开发者在处理文本时更高效。下面是一些 Apache Commons Text 中常用的方法和功能:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<!-- Check for the latest version -->
<version>1.9</version>
</dependency>
1. StrSubstitutor
用于字符串替换,支持占位符的替换。
public static void main(String[] args) {
Map<String, String> map = new HashMap<>(16);
map.put("name","拼夕夕");
map.put("time","69.3h");
//创建实例
StrSubstitutor sub = new StrSubstitutor(map);
//1.基本替换:
String templateString ="公司:${name},每周平均工作时长${time}。";
String resolvedString = sub.replace(templateString);
System.out.println(resolvedString);
//输出===> 公司:拼夕夕,每周平均工作时长69.3h。
//2.自定义占位符: "示例中用中括号[ ]"
sub = new StrSubstitutor(map,"[","]");
templateString ="公司:[name],每周平均工作时长[time]。";
resolvedString = sub.replace(templateString);
System.out.println(resolvedString);
//输出===> 公司:拼夕夕,每周平均工作时长69.3h。
}
2 .StringEscapeUtils
提供了对字符串进行转义和反转义的功能,支持多种格式。
public static void main(String[] args) {
//1. HTML 转义:
String escapedHtml = StringEscapeUtils.escapeHtml4("Hello <world>!");
//输出===> Hello <world>!
System.out.println(escapedHtml);
String unescapedHtml = StringEscapeUtils.unescapeHtml4(escapedHtml);
//输出===> Hello <world>!
System.out.println(unescapedHtml);
//2.XML 转义:
String escapedXml = StringEscapeUtils.escapeXml11("<example>test</example>");
System.out.println(escapedXml);
//输出===> <example>test</example>
String unescapedXml = StringEscapeUtils.unescapeXml(escapedXml);
//输出===> <example>test</example>
System.out.println(unescapedXml);
//3.JSON 转义:
String unescapeJson = StringEscapeUtils.unescapeJson("{\"key\":\"value\"}");
//输出===> {"key":"value"}
System.out.println(unescapeJson);
String escapedJson = StringEscapeUtils.escapeJson(unescapeJson);
//输出===> {\"key\":\"value\"}
System.out.println(escapedJson);
}
3. StringTokenizer
StringTokenizer 用于对字符串进行分词操作,支持多种分隔符。
public static void main(String[] args) {
//创建一个待分隔的字符串
String testStr = "Hello*World*Apache|nice|to|meet|you";
//创建StringTokenizer类,它可以根据指定的分隔符将字符串分解为多个子串,或通过默认的分隔符(空格、制表符、换行符、回车符)进行拆分
StringTokenizer tokenizer = new StringTokenizer(testStr, "*|");
//创建一个接收数组
String[] tokens = new String[tokenizer.countTokens()];
int index = 0;
//boolean hasMoreTokens():判断是否还有未处理的子串。
while (tokenizer.hasMoreTokens()) {
//String nextToken():返回下一个子串。
tokens[index] = tokenizer.nextToken();
index++;
}
//输出===> ["Hello","World","Apache","nice","to","meet","you"]
System.out.println(JSONObject.toJSONString(tokens));
}
4. WordUtils
WordUtils 提供了对单词的操作,常用于格式化文本。
public static void main(String[] args) {
String text = "this is my favorite song";
// 首字母大写
String capitalized = WordUtils.capitalize(text);
//输出===> This Is My Favorite Song
System.out.println(capitalized);
// 去除首字母大写
String uncapitalized = WordUtils.uncapitalize(capitalized);
//输出===> this is my favorite song
System.out.println(uncapitalized);
// 每行10个字符换行
String formattedText = WordUtils.wrap(text, 10);
//输出===> this is my
//favorite
//song
System.out.println(formattedText);
}

1136

被折叠的 条评论
为什么被折叠?



