単一の文字列で単語を見つけて比較する。 Java

文字列の中で2つの単語を探しているなら。どうしたらいいですか。

たとえば、文字列 "asdgcatgadfdog"にはcatとdogが含まれています。どのように私は文字列の中でこれらの単語を捜して、そしてそれが両方を見つけたら真と印刷することになるでしょうか?

string.startsWith で始まることはできません。開始コードではありませんし、 contains も含まれていないと思います。または少なくとも、私はそれをcontainsで動作させることができませんでした。

正しい方向への推進は私が探しているすべてです。

0
contains または indexOf はあなたの友達です
追加された 著者 Ilya Bursov,

6 答え

正規表現を使うことができます。

boolean found = "asdgcatgadfdog".matches("(?i).*(cat.*dog)|(dog.*cat).*");
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");
}
}
1
追加された

以下のコードを確認してください。

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

これを試して:

String str= "asdgcatgadfdog";
if(str.contains("cat") && str.contains("dog")){
    System.out.println("Match");
}
0
追加された
boolean match = str1.toLowerCase().contains(str2.toLowerCase())
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
0
追加された