如何用空格拆分字符串并将空格作为结果中的元素包含在内?多个空格拆分

How to split string with white spaces and include white spaces as elements in the result?multiple white spaces splitting

我用任意数量的白色space分割字符串的代码是

String out="SELECT * FROM EMP WHERE EMPID=10";
String array[] = out.split("\s+");

我想将 "out" 字符串中的白色 space 包含到数组 [] 对象中,同时用白色 space 分割。 我想要的输出是:

array[]={"SELECT","[WHITE SPACE]","*","[WHITE SPACE]","FROM","[WHITE SPACE]","EMP","[WHITE SPACE]","WHERE","[WHITE SPACE]","EMPID=10"}

但我得到的输出是:

 array[]={"SELECT","*","FROM","EMP","WHERE","EMPID=10"}

任何帮助将不胜感激

试试这个,

String out="SELECT * FROM EMP WHERE EMPID=10";
    out = out.replaceAll("\s+", ",[WHITE SPACE],");

    String [] array = out.split(",");

    ArrayList<String> list = new ArrayList<String>();

    for(String str : array){
        list.add(str);
    }
    System.out.println(list);

输出:

由于 split 接受正则表达式,您可以使用 lookarounds:

out.split("(?<=\s)|(?=\s)");

这将输出:

[SELECT,  , *,  , FROM,  , EMP,  , WHERE,  , EMPID=10]

请注意,分隔符(在您的情况下为 space)包含在结果中。

尝试这样拆分:

  String array[] = out.split("(?=\s)",-1);

密码是:

 public static void main(String[] args) {
    String out="SELECT * FROM EMP WHERE EMPID=10";
    String array[] = out.split("(?=\s)",-1);

    for (String string : array) {       
    System.out.print(string);
    }
  }

输出:

SELECT * FROM EMP WHERE EMPID=10