用空格,连字符和“ab cd”拆分字符串

时间:2013-01-15 22:10:43

标签: java regex split whitespace hyphen

c = "abc ab cd-abc-abc";

 String[] cinput = c.split("(?<=[ ])|(-)|(?<=ab cd)|(?=ab cd)");

我想像这样拆分字符串c(顺序也很重要):

 cinput[0] = "abc " (notice the space)
 cinput[1] = "ab cd"
 cinput[2] = "abc"
 cinput[3] = "abc"

另一个例子:

c =“abc-abc abc ab cd-ab-cd”;

 cinput[0] = "abc" 
 cinput[1] = "abc "
 cinput[2] = "abc "
 cinput[3] = "ab cd"
 cinput[4] = "ab"
 cinput[5] = "cd"

分隔符“”,“ - ”和“ab cd”。我做“ab cd”的方式变成了两个数组元素“ab”和“cd”,但我希望它们在一个元素中合在一起。

关于如何解决这个问题以及我做错了什么的想法?

1 个答案:

答案 0 :(得分:2)

由于分隔符文本中有空格,而空格分隔符之一,您可能需要使用额外逻辑分多步执行分割

1)拆分“ - ”将产生:{“abc ab cd”,“adc”,“abc”}
2)检查你的文本字段
  if(text []。contains(“ab cd”))
      - 从文本中删除“ab cd”并保存
=&gt; {“abc”,“abc”,“abc”}和{“ab cd”}

3)在空白区域拆分未保存的文本并合并你的两组