public class TestStringSplit {
public static void main(String[] args) {
String bal = "IND|TEST|***|Cricket|***";
String[] patterns = org.springframework.util.StringUtils.split(bal,
"***");
System.out.println("SPRING Framework String Split");
for (String pt : patterns) {
System.out.println("Pattern " + pt);
}
System.out.println("************************");
patterns = org.apache.commons.lang.StringUtils.split(bal,
"***");
System.out.println("Apache Commons Lang String Split");
for (String pt : patterns) {
System.out.println("Pattern " + pt);
}
System.out.println("************************");
patterns = bal.split("***");
System.out.println("JDK String Split");
for (String pt : patterns) {
System.out.println("Pattern " + pt);
}
}
}
以上结果为
SPRING框架字符串分割
Pattern IND|TEST|
Pattern |Cricket|***
<小时/>
Apache Commons Lang 字符串拆分
Pattern IND|TEST|
Pattern |Cricket|
<小时/>
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
***
^
为什么默认的 JDK 没有给我所需的结果,而是给我异常......以及获取值的模式应该是什么
问候
最佳答案
您需要转义“*”,因为它是正则表达式中的特殊字符:
patterns = bal.split("\\*\\*\\*");
关于java - Java 中以 *** 分隔符分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917358/