【问题标题】:How to break a string into an array如何将字符串分解为数组
【发布时间】:2015-01-06 12:12:52
【问题描述】:

我在解析文本时遇到问题,我有采访记录,并且我有一个频道正在讲话的标签 (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>,....}

感谢您的帮助。

【问题讨论】:

标签: java parsing text


【解决方案1】:

您可以使用带有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>]

由于&lt;&gt; 很多,阅读起来有点困难,但模式是这样的:

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

【讨论】:

    【解决方案2】:
    text.split("<ch").join("-<ch").split("-").
    

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

    【讨论】:

    • 如果文中有其他-怎么办?最好使用更多更独特的分隔符(或字符序列)。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    相关资源
    最近更新 更多