使用Java在第二次出现空格时将字符串拆分

时间:2018-07-25 08:03:04

标签: java regex

基于空间的第二次出现的分割字符串。 例如) 像A B C D E

这样的字符串
import java.io.*;
import java.util.Arrays;

class Test {
    public static void main(String[]args) throws IOException {

        String s="A B C D E";
        String[] spl=s.split("(?<=\\s\\S{1,100})\\s");
        System.out.println(Arrays.toString(spl));
        for(int i = 0; i < spl.length; i++) {
            System.out.println(spl[i]);
        }
    }
}

上面的代码给出

[A B, C, D, E]
A B
C
D
E

我想要的是以下格式:

[A B, C D, E]
A B
C D
E

1 个答案:

答案 0 :(得分:4)

找到一种根据您的要求进行拆分的方法非常容易,我会建议使用matching groups代替

String s = "A B C D E";
Pattern p = Pattern.compile("(\\w\\s\\w)|\\w");
Matcher m = p.matcher(s);
List<String> res = new ArrayList<>();
while(m.find()){
        res.add(m.group());
}
System.out.println(res);          //    [A B, C D, E]

Workable Demo