2
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”,但我希望它们在一个元素中在一起。

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

4

1 回答 1

2

由于您的分隔符文本中有一个空格,以及作为分隔符之一的空格,您可能需要使用额外的逻辑分多个步骤进行拆分

1)拆分“-”将产生:{“abc ab cd”,“adc”,“abc”}
2)检查您的文本字段
如果(text[].contains(“ab cd”))
- 删除“ ab cd" 从文本中保存
=> {"abc", "abc", "abc"} 和 {"ab cd"}

3)在空白处拆分未保存的文本并组合您的两组

于 2013-01-15T22:33:38.760 回答