如何在第三个空格后分割字符串



我试图在Java中每隔三个空间后分割字符串。我尝试了很多正则表达式,没有运气:

如果有一个字符串:

Tuesday, August 11, 1993 Monday, September 10, 2015 Tuesday, January 21, 2015 Wednesday, July 15, 2015

我希望这个在年份之后分割(假设它总是4位数)

最好的方法??任何帮助都非常感谢:)

最简单的理解方法是找到一个空格三次,然后取两个子字符串——在空格位置的前面和后面。

使用indexOf过载,占用fromIndex在循环中的位置,数三个空格,然后使用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())+"'");

演示。

您可以使用正则表达式在每个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");

最新更新