gpt4 book ai didi

java - 优化基于正则表达式的查找函数

转载 作者:行者123 更新时间:2023-12-01 17:28:34 25 4
gpt4 key购买 nike

我有以下功能。

private boolean codeContains(String name, String code) {
if (name == null || code == null) {
return false;
}

Pattern pattern = Pattern.compile("\\b" + Pattern.quote(name) + "\\b");
Matcher matcher = pattern.matcher(code);

return matcher.find();
}

它在我的代码中被调用了数千次,并且是我的程序花费最多时间的函数。有什么方法可以使这个函数运行得更快,或者它是否已经尽可能快了?

最佳答案

如果您不需要检查单词边界,您可以这样做:

private boolean codeContains(String name, String code) {
return name != null && code != null && code.indexOf(name)>=0;
}

如果您需要检查单词边界,但正如我想的那样,您有一个经常在其中搜索的大代码,您可以“编译”该代码 一次通过

  • 使用 split 方法拆分 code 字符串
  • 将 token 放入哈希集中(检查 token 是否位于哈希集中的速度相当快)。

当然,如果您有多个代码,则可以轻松地将它们存储在适合您的程序的结构中,例如以文件名作为键的映射中。

关于java - 优化基于正则表达式的查找函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13136068/

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