有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java拆分字符串,以包含由空格表示的空值

我试图拆分包含空格的输入字符串,但我不想将其从拆分中切断,我想将其包含在拆分数组中。在这种情况下,有没有更好的正则表达式或方法

String data = "1     a1 b1  r5";
String splitData = data.split("\\s+");
for(String x : splitData){
  System.out.print(x + ", ");
}

Expected output: 1, , , , , ,a1, b1, , r5

共 (2) 个答案

  1. # 1 楼答案

    如果要创建令牌数组,只需使用:

    字符串[]sp=s.split(“”)

    但是,这将在第一个项目之后创建4个空项目,而不是5个

    在“a1”和“b1”之间有1个空格,您希望那里有0个空项。 在“b1”和“r5”之间有两个空格,您希望其中有一个空项。 “1”和“a1”之间有5个空格。为什么你希望那里有5个空项目而不是4个

    为什么预期的输出在“a1”前面的逗号后面没有空格

  2. # 2 楼答案

    我被你的方法弄糊涂了。如果这就是你想要做的,那么可以做得简单得多:

    String input  = "1     a1 b1  r5";
    String output = input.replace(" ", ", ");
    System.out.println(output);
    

    中间一行简单地用逗号和空格取代空格字符“,”。最终输出与您请求的输出匹配:

     1, , , , , a1, b1, , r5
    

    如果这是一个简单的例子,你真的打算使用一个更复杂的正则表达式,请发布这个正则表达式,我们可以开始处理它