java - 按空格、连字符和 "ab cd"分割字符串

标签 java regex split delimiter

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

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

最佳答案

由于分隔 rune 本中有空格,并且分隔符之一也有空格,因此您可能需要使用额外的逻辑分多个步骤进行分割

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

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

关于java - 按空格、连字符和 "ab cd"分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347853/

相关文章:

java - Spring Boot 中 websocket 的互斥体

java - 如何使用串行事件监听器接收JSON对象?

java - 删除包含特定字符的行

ios - 检查 NSString 是否包含任何数字并且至少有 7 个字符长

c++ - vector 推回

java - 每次点击按钮读取每 5 行

jquery - 将变量传递给 jquery 中的正则表达式模式字符串

java - 组合两个正则表达式的时间复杂度是多少?

string - 为什么拆分字符串本身会返回一个长度为 2 的空 slice ?

java - 将项目拆分为两个文件