java - 使用java在第二次出现空格时分割字符串

标签 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

最佳答案

找到一种按照您的要求进行拆分的方法并不简单,我会建议一种使用匹配组的方法

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

关于java - 使用java在第二次出现空格时分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51513786/

相关文章:

javac 不显示编译器错误?

regex - 查找和删除 xml 文件中的特定标签

php - 正则表达式保留/匹配以某个字符开头的任何单词

java - 设置 NativeSelect 的自定义值

开箱即用地支持 i18n 的 Java ORM 框架?

java - 如何使用 @ImportResource 导入 src/main/resources/static 中的整个配置文件目录?

Javascript 正则表达式有异常

c# - 删除除数字以外的所有零

正则表达式匹配重复字符

java - 向 JPanel 添加其他 JPanel