【问题标题】:How to split string with white spaces and include white spaces as elements in the result?multiple white spaces splitting如何用空格分割字符串并在结果中包含空格作为元素?多个空格分割
【发布时间】:2015-12-10 07:43:43
【问题描述】:

我用任意数量的空格分割字符串的代码是

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

我想将“out”字符串中的空格包含到 array[] 对象中,同时用空格进行拆分。 我想要的输出是:

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

但我得到的输出是:

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

任何帮助将不胜感激

【问题讨论】:

标签: java regex string string-split


【解决方案1】:

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

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

这将输出:

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

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

【讨论】:

    【解决方案2】:

    尝试像这样拆分它:

      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
    

    【讨论】:

    • 如果我想用 ;并在数组列表中包含分号,我可以使用 String array[] = out.split("(?=\;)",-1)
    • @zameer 你能给我一些输入并期待输出
    • 我的意思是说,如何在 out.split("(?=\\s)",-1) 的帮助下通过引用空格来拆分字符串。现在我的问题是如何我在分号 (;) 的帮助下拆分了字符串。我可以使用上述解决方案,如 String array[] = out.split("(?=\\;)",-1).
    • 以上评论没有满足要求,我正在粘贴代码。我的要求是我想在拆分字符串时将分号添加到字符串中,但分号正在添加到下一个string ,这里是代码 String sampleContent="hello ; hai ; come fast ;"; String SQLScripts[] = sampleContent.split("(?=\\;)",-1);在 for 循环中循环后,我得到输出 as===>: OUTPUT: hello ,OUTPUT: ;海,输出:;快来,输出:;但我希望分号必须添加到第一个拆分字符串中,例如:你好;喂;
    • @zameer 我用过这个:sampleContent.split("(?=\\s)",-1);我有这个输出:你好;海;快来;===>如果你想要的话:你好;海;给点时间去做
    【解决方案3】:

    试试这个,

    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);
    

    输出:

    【讨论】:

    • 我不认为他真的打算用[WHITE SPACE] 替换` `。我猜他也希望输出数组中的空格作为字符串。
    • 那么他们只能将其作为空格提交,他可以通过任何方式将 [WHITE SPACE] 替换为 " "。
    猜你喜欢
    • 2012-02-26
    • 2012-04-22
    • 2012-09-22
    • 2020-05-16
    • 2013-10-11
    • 1970-01-01
    • 2014-12-13
    • 2013-08-02
    • 2023-04-02
    相关资源
    最近更新 更多