单词比较

0 java

我想问一下是否有人知道Java是否内置了库以执行以下操作.

例如,

我有两个字符串:字符串a ="是的,我喜欢Java编程."; 字符串b ="爱";

我想检查包含"love"的String b是否是String a中标记的一部分.因此,我想问一下有没有Java API这样做?我想要的东西,

a.contains(b)<---------返回真实结果

有没有??? 因为,,,,如果没有Java API,我会编写自己的算法.

在此先感谢任何帮助.. ^^

Jon*_*eet 9

到目前为止的建议(indexOf,contains)都很好,如果你只是想找到子串.但是,鉴于你的问题的标题,我假设你真的想找到单词.例如,如果被问及"她戴着黑色手套"是否包含"爱",我的猜测是你想要的答案是否定的.

正则表达式可能是前进的最佳方式,使用围绕相关单词的单词边界:

import java.util.regex.*;

public class Test
{    
    public static void main(String[] args)
    {
        System.out.println(containsWord("I love Java", "love"));
        System.out.println(containsWord("She wore gloves", "love"));
        System.out.println(containsWord("start match", "start"));
        System.out.println(containsWord("match at end", "end"));
    }

    public static boolean containsWord(String input, String word)
    {
        Pattern pattern = Pattern.compile("\\b" + Pattern.quote(word) + "\\b");
        return pattern.matcher(input).find();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

true
false
true
true
Run Code Online (Sandbox Code Playgroud)