1

我有一个文件,我从中逐行读取,并且我编写了一个代码来获取字符串的某个部分(从该行),它位于两个特定单词之间,例如

[abc] long time ago [cde]

现在我已经编写了以下代码来获取很久以前的字符串

if (line.contains("[abc]") && line.contains("[cde]")) {
    int b = line.indexOf("abc");
    int cc = line.indexOf("cde");
    String tk = line.substring(b + 4, cc);
    System.out.println(tk);
}

这段代码工作正常,但现在的问题是。我遇到了以下行

[abc] long time ago [cde]    [abc] Everyday is a new day [cde]

现在,请告诉我如何获取这两个字符串……因为它们位于同一行,而我的代码只考虑第一个……

4

2 回答 2

3
while (line.contains("[abc]") && line.contains("[cde]")) {
    int b = line.indexOf("abc");
    int cc = line.indexOf("cde");
    String tk = line.substring(b + 4, cc);
    System.out.println(tk);
    line = line.substring(cc + 4);
}
于 2012-04-05T15:50:49.973 回答
0

使用此链接的正则表达式,因为它们将匹配给定字符串的每次出现。

于 2012-04-05T15:51:48.350 回答