我需要根据模式拆分一个字符串,然后我需要再次将它合并回字符串的一部分。
例如:下面是实际的和预期的字符串。
String actualstr="abc.def.ghi.jkl.mno";
String expectedstr="abc.mno";
当我在下面使用时,我可以存储在一个数组中并迭代以取回它。无论如何它可以比下面更简单高效地完成。
String[] splited = actualstr.split("[\\.\\.\\.\\.\\.\\s]+");
虽然我可以根据索引访问字符串,但有没有其他方法可以轻松做到这一点。请指教。
最佳答案
您不了解正则表达式的工作原理。
这是没有转义的正则表达式:[\.\.\.\.\.\s]+
您有一个字符类 ([]
)。这意味着没有理由在其中包含多个 .
。您也不需要在 char 类中转义 .
。
这是与您的正则表达式等效的正则表达式:[.\s]+
。作为 Java 字符串,它是:"[.\\s]+"
.
您可以对字符串执行 .split("regex")
以获得数组。从那一点得到解决方案非常简单。
关于java - 根据模式拆分字符串并将其合并回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36780583/