在另一个内部查找某个String并计算它出现的次数

时间:2015-07-19 09:06:10

标签: java regex string matcher

我正在尝试在文件内容中搜索一个String,我将其放入String中。

我尝试使用适用于此案例的sudo pip install -U setuptools Pattern

Matcher

然后,我尝试使用相同的代码来查找我有多少个标签:

Pattern p = Pattern.compile("(</machine>)");
Matcher m = p.matcher(text);
while(m.find()) //if the text "(</machine>)" was found, enter
{
    Counter++;
}

return Counter;

在这种情况下,返回值始终为0.

2 个答案:

答案 0 :(得分:5)

尝试使用以下代码,顺便说一句,不要使用Pattern: -

String actualString = "hello hi how(</machine>) are you doing. Again hi (</machine>) friend (</machine>) hope you are (</machine>)doing good.";
//actualString which you get from file content
String toMatch = Pattern.quote("(</machine>)");// for coverting to regex literal
int count = actualString .split(toMatch, -1).length - 1; // split the actualString to array based on toMatch , so final match count should be -1 than array length.
System.out.println(count);

输出: - 4

答案 1 :(得分:3)

您可以使用Apache commons-lang util库,完全有一个函数countMatches

int count = StringUtils.countMatches(text, "substring");

此功能也是零安全的。 我建议你去探索Apache commons库,它们提供了许多有用的常用工具方法。