如果这是重复,我很抱歉 - 但我找不到任何相关问题。 (也许我只是找不到适合这类问题的搜索表达式)
想一想 Java 中的以下字符串:
"test:test2+test3++test4:test5+test6"
正如您所看到的,分隔符为:
和+
。
使用Apache StringUtils.split(string, "[:+]")
方法可以很好地进行拆分,但问题是如果出现++
,则返回的StringArray
不包含空格,表示存在未使用的值
这意味着我需要以下输出:
"test"
"test2"
"test3"
" " <-- whitespace!
"test4"
"test5"
"test6"
++
也可以出现在字符串的开头或结尾。
有没有办法用正则表达式解决这个问题?
答案 0 :(得分:0)
这是你需要的吗?
String s = "test:test2+test3++test4:test5++test6";
String[] s1 = s.replaceAll ("[:+]{1}", " ").split (" ");
for(int i = 0;i<s1.length;i++){
System.out.println (s1[i]);
}
输出:
test
test2
test3
test4
test5
test6
答案 1 :(得分:0)
这应该适合你:
String string = "test:test2+test3++test4:test5+test6";
string.replaceAll("([:+]){2,}", "$1 $1").split("[:+]")
<强>输出:强>
请参阅带有空格的标记#4(我添加了引号来演示)。