查找并比较单个字符串中的单词。 Java的

时间:2015-04-14 05:16:53

标签: java

如果我在字符串中查找两个单词。我该怎么做呢?

例如,字符串“asdgcatgadfdog”包含cat和dog。我如何在字符串中查找这些单词,然后如果找到它们则打印为true?

它不能string.startsWith因为它不是以它开头的,我不认为它是contains。或者至少,我还没有能够使用contains。

正在寻找正确的方向。

6 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

boolean found = "asdgcatgadfdog".matches("(?i).*(cat.*dog)|(dog.*cat).*");

答案 1 :(得分:1)

检查以下代码:

public static void main(String[] args) {
    String word = "asdgcatgadfdog";
    if(word.contains("cat")){
        System.out.println("true");
    }
}

答案 2 :(得分:1)

public static void main(String[] args) {
String str = "asdgcatgadfdog";
if(str.indexOf("cat")!= -1 && str.indexOf("dog")!= -1){
    System.out.println("true");
}else{
    System.out.println("false");
}
}

答案 3 :(得分:0)

boolean match = str1.toLowerCase().contains(str2.toLowerCase())

答案 4 :(得分:0)

试试这个:

String str= "asdgcatgadfdog";
if(str.contains("cat") && str.contains("dog")){
    System.out.println("Match");
}

答案 5 :(得分:0)

您可以使用indexOf()contains()。实际上,contains()正在调用indexOf()

public boolean contains(CharSequence s) {
    return indexOf(s.toString()) > -1;
}  

检查以下代码:

String str1 = "lsjfcatsldkjglsdog";
String str2 = "lsjfjlsdjsldkjglsdog";
System.out.println("contains:");
System.out.println("str1: "
        + (str1.contains("cat") && str1.contains("dog")));
System.out.println("str2: "
        + (str2.contains("cat") && str2.contains("dog")));
System.out.println("indexOf:");
System.out.println("str1: "
        + (str1.indexOf("cat") > -1 && str1.indexOf("dog") > -1));
System.out.println("str2: "
        + (str2.indexOf("cat") > -1 && str2.indexOf("dog") > -1));

输出结果为:

contains:
str1: true
str2: false
indexOf:
str1: true
str2: false