如何将字符串分解为数组
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)")
我在解析文本时遇到问题,我有采访记录,并且有一个正在通话的频道 (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)")