如何将字符串分解为数组

How to break a string into an array

我在解析文本时遇到问题,我有采访记录,并且有一个正在通话的频道 (ch1,ch2) 的标签。我需要将它分解成数组,这样我就可以搜索某人在哪个频道中讲述特定的单词。

例如这是采访的一部分

<ch1>Hello</ch1> <ch2>Hello</ch2> <ch1>How are you</ch1><ch2>I'm fine</ch2>

这是一个字符串

String text = "<ch1>Hello</ch1> <ch2>Hello</ch2> <ch2>How are you</ch2>
<ch2>I'm fine</ch2>";

我想要输出

 String output[] = {<ch1>Hello</ch1>,<ch2>Hello</ch2>,....}

感谢您的帮助。

text.split("<ch").join("-<ch").split("-").

可以是任何字符串而不是可以使用的“-”。

您可以使用正则表达式 lookahead and lookbehind:

String dialogue = "<ch1>Hello</ch1> <ch2>Hello</ch2> <ch1>How are you</ch1><ch2>I'm fine</ch2>";
String[] statements = dialogue.split("(?<=</ch[12]>)\s*(?=<ch[12]>)");
System.out.println(Arrays.asList(statements));

输出:

[<ch1>Hello</ch1>, <ch2>Hello</ch2>, <ch1>How are you</ch1>, <ch2>I'm fine</ch2>]

由于<>比较多,读起来有点吃力,但是模式是这样的:

split("(?<=endOfLastPart)inBetween(?=startOfNextPart)")