gpt4 book ai didi

java - 在字符串中搜索单词

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:23 24 4
gpt4 key购买 nike

如果我要查找字符串中的特定单词,例如,在字符串“how are you”中我要查找“are”。 常规 indexOf() 会更快更好地工作还是 Regex match()

String testStr = "how are you";
String lookUp = "are";

//METHOD1
if (testStr.indexOf(lookUp) != -1)
{
System.out.println("Found!");
}

//OR
//METHOD 2
if (testStr.match(".*"+lookUp+".*"))
{
System.out.println("Found!");
}

以上两种方法中哪一种是在另一个字符串中查找字符串的更好方法?或者有更好的选择吗?

  • 艾沃德

最佳答案

如果您不关心它是否真的是您正在匹配的整个单词,那么 indexOf() 会快很多。

另一方面,如果您需要能够区分轻率不是等,那么你需要一个正则表达式:\bare\b 只会将 are 匹配为整个单词(Java 中的 \\bare\\b)。

\b 是一个词边界 anchor ,它匹配字母数字字符(字母、数字或下划线)和非字母数字字符之间的空格。

警告:这也意味着,如果您的搜索词实际上不是一个词(假设您正在寻找 ###),那么这些词边界 anchor 将只匹配一个字符串像 aaa###zzz,但不是 +++###+++

进一步警告:默认情况下,Java 对于什么构成字母数字字符具有有限的世界观。此处仅计算 ASCII 字母/数字(加上下划线),因此单词边界 anchor 将在 élèverelevéärgern 等单词上失败。 Read more about this (and how to solve this problem) here .

关于java - 在字符串中搜索单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3879160/

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