gpt4 book ai didi

java - 每次字符串与字符串数组中的元素匹配时,尝试向变量添加计数

转载 作者:行者123 更新时间:2023-12-04 12:55:42 25 4
gpt4 key购买 nike

所以,我有一个字符串数组。例如,[test, exam, quiz]我们将称之为 cat以防误会。我也有一个字符串。例如,String school = "We have a test and a quiz next week" .我正在检查字符串 school查看它是否包含/匹配字符串数组 [test, exam, quiz] .但是,我想跟踪计数变量中发生了多少匹配。我一直无法弄清楚如何为每场比赛的计数加一个。例如,根据构建的场景,字符串数组中的三者应该有两个匹配项。
这是我的代码:

int i = 0;

for (String s : cat) {
if (school.contains(s)) {
match = true;
i++;
break;
}
}
此代码的输出仅给出 1,即使字符串 school包含测试和测验。我想要它给两个。
您的帮助将不胜感激。

最佳答案

一种方法使用交替的搜索词以及正式的正则表达式模式匹配器:

String[] cat = new String[] {"test", "exam", "quiz"};
StringBuilder regex = new StringBuilder("\\b(?:");
for (int i=0; i < cat.length; ++i) {
if (i > 0) regex.append("|");
regex.append(cat[i]);
}
regex.append(")\\b");

String school = "We have a test and a quiz next week";
Pattern r = Pattern.compile(regex.toString());
Matcher m = r.matcher(school);
int count = 0;

while (m.find()) {
++count;
}

System.out.println("found " + count + " matches."); // found 2 matches.
在这里要清楚,我们对输入句子使用的正则表达式模式是:
\b(?:test|exam|quiz)\b
我们遍历输入的句子,每次点击一个关键字时计数器加一。

关于java - 每次字符串与字符串数组中的元素匹配时,尝试向变量添加计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67964553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com