我想问一下是否有人知道Java是否内置了库以执行以下操作。
例如,
我有两个字符串: 字符串a =“是的,我喜欢Java编程。”; 字符串b =“爱”;
我想检查包含“love”的String b是否是String a中标记的一部分。因此,我想问一下有没有Java API这样做? 我想要类似的东西,
a.contains(b)< ---------返回真实结果
有没有??? 因为,,,,如果没有Java API,我会编写自己的算法。
提前感谢任何帮助.. ^^
答案 0 :(得分: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();
}
}
输出:
true
false
true
true
答案 1 :(得分:1)
string strToCheck = "check me";
int firstOccurence = strToCheck .indexOf("me");
//0 if no any
答案 2 :(得分:1)
该方法包含(CharSequence s)类String。
所以你的a.contains(b)会起作用
答案 3 :(得分:0)
您可以使用String库中的indexOf()函数来检查它:
if(a.indexOf(b)>=0)
return true;
答案 4 :(得分:0)
是的,有:http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#contains(java.lang.CharSequence)。
答案 5 :(得分:0)
如果你想找到单词很容易,你只需要使用split。
//Split to an array using space as delimiter
String[] arrayOfWords = a.split(" ");
然后你会比较:
"love".equalsIgnoreCase(arrayOfWords[i]);
类似的东西,你明白了