我有一个多行字符串,由一组不同的分隔符分隔:
(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)
我可以使用string将这个字符串分割成各个部分。分裂,但似乎我无法获得与分隔符正则表达式匹配的实际字符串。
换句话说,这就是我得到的结果:
Text1
Text2
Text3
Text4
这就是我想要的
Text1
DelimiterA
Text2
DelimiterC
Text3
DelimiterB
Text4
JDK中是否有任何方法可以使用分隔符正则表达式分割字符串,但同时保留分隔符?
如果负担得起,可以使用Java的replace(CharSequence target, CharSequence replacement)方法,并填充另一个分隔符以进行分割。
例子:
我想拆分字符串“boo:and:foo”,并将“:”放在它的右边。
String str = "boo:and:foo";
str = str.replace(":","newdelimiter:");
String[] tokens = str.split("newdelimiter");
重要提示:这只在你的字符串中没有进一步的“newdelimiter”时才有效!因此,这不是一个通解。
但是如果你知道一个CharSequence,你可以确定它永远不会出现在String中,这是一个非常简单的解决方案。
如果负担得起,可以使用Java的replace(CharSequence target, CharSequence replacement)方法,并填充另一个分隔符以进行分割。
例子:
我想拆分字符串“boo:and:foo”,并将“:”放在它的右边。
String str = "boo:and:foo";
str = str.replace(":","newdelimiter:");
String[] tokens = str.split("newdelimiter");
重要提示:这只在你的字符串中没有进一步的“newdelimiter”时才有效!因此,这不是一个通解。
但是如果你知道一个CharSequence,你可以确定它永远不会出现在String中,这是一个非常简单的解决方案。