我正在尝试拆分包含空格的输入字符串,但我不想将其从我的拆分中删除,我想将它包含在我的拆分数组中。在这种情况下是否有更好的正则表达式或方法?
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
答案 0 :(得分:0)
我对你的方法感到困惑。如果您只是尝试这样做,那么可以更简单地完成:
String input = "1 a1 b1 r5";
String output = input.replace(" ", ", ");
System.out.println(output);
中间线只是替换空格字符," ",用逗号后跟空格,","。最终输出与您请求的输出匹配:
1, , , , , a1, b1, , r5
如果这是一个最小的示例,并且您实际上打算使用更复杂的正则表达式,请发布该正则表达式,我们可以开始使用它。
答案 1 :(得分:0)
如果您想创建一个令牌数组,只需使用:
String [] sp = s.split("");
但是,这将在第一个之后创建4个空项,而不是5个。
" a1"之间有1个空格。和" b1",你预计那里有0个空项目。 " b1"之间有2个空格。和" r5"你希望那里有一个空项目。 " 1"之间有5个空格。和" a1"。你为什么期望那里有5个空项而不是4个?
为什么你的预期输出在" a1"之前的逗号之后没有空格? ?