我试图在Java中每隔三个空格后拆分一个字符串。我尝试了许多正则表达式而没有运气:
如果我有一个字符串:
Tuesday, August 11, 1993 Monday, September 10, 2015 Tuesday, January 21, 2015 Wednesday, July 15, 2015
我想在年后分开(假设它总是4位数)
最好的办法吗?非常感谢任何帮助:)
答案 0 :(得分:1)
最简单的理解方法是找到一个空格三次,然后取两个子串 - 在空间位置之前和之后。
在循环中使用indexOf
overload that takes the fromIndex
position,计算三个空格,然后两次使用substring
。
String s = "quick brown fox jumps over the lazy dog";
int pos = 0;
for (int i = 0 ; pos != -1 && i != 3 ; i++, pos++) {
pos = s.indexOf(' ', pos);
}
System.out.println("'"+s.substring(0, pos-1)+"'");
System.out.println("'"+s.substring(pos, s.length())+"'");
答案 1 :(得分:0)
您可以使用正则表达式在每次4位数匹配后进行拆分:
String toSplit = "Tuesday, August 11, 1993 Monday, September 10, 2015 Tuesday, January 21, 2015 Wednesday, July 15, 2015";
String[] split = toSplit.split("(?<=\\d{4})\\s");
如果您想要更加严谨并且只在完全格式化的日期之后拆分,您可以改为使用它:
String[] split = toSplit.split("(?<=\\w{1,9}, \\w{1,9} \\d{1,2}, \\d{4})\\s");