البحث عن الكلمات ومقارنتها في سلسلة واحدة. جافا

إذا كنت أبحث عن كلمتين في سلسلة. كيف أذهب عن ذلك؟

على سبيل المثال ، تحتوي السلسلة "asdgcatgadfdog" على قطة وكلب. كيف سأذهب للبحث عن هذه الكلمات في سلسلة ، ثم طباعتها إذا وجدت كل منهما؟

لا يمكن أن يكون string.startsWith لأنه لا يبدأ به ، ولا أعتقد أنه يحتوي على . أو على الأقل ، لم أتمكن من جعله يعمل مع يحتوي عليه.

دفع في الاتجاه الصحيح هو كل ما أبحث عنه.

0
يحتوي على أو 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() أو يحتوي على() . في الواقع ، يحتوي على() هو استدعاء 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
وأضاف