פונקציה זו תוכננה במיוחד כדי לבדוק אם מחרוזת 'מכילה' מחרוזת נוספת או לא. אם אתה חדש בזה, ייתכן שתשתמש בו כדי למצוא 'דמות'. אבל זה לא ישרת את המטרה. במאמר זה, נתייחס כיצד נעשה שימוש, יישום של java.lang.String.contains() ואילו חריגים יכולים להופיע אם לא נעשה שימוש זהיר.
מהי שיטת contains()?
אתה יכול להשתמש בשיטת contains(String key) כדי " למצוא " אם מחרוזת מסוימת " מפתח " קיימת בתוך מחרוזת מסוימת או לא. אם נמצא "מפתח", "true" מוחזר. אחרת תקבל "שקר".
יישום פנימי
שיטה זו כבר מיושמת על ידי java.lang.String . אתה לא צריך ליישם את זה בעצמך. הנה הסבר מהיר על זה להבנתך.public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
הסבר קוד
שיטת contains() לוקחת CharSequence כפרמטר קלט. אשר מומר מאוחר יותר ל"מחרוזת". אז הביטוי הזה מחושב indexOf(key.toString()) > -1; . כלומר, אם ה"מפתח" הזה נמצא באינדקס כלשהו ("0" או יותר), אז "true" מוחזר. ואם המפתח לא נמצא, אזי "שקר" מוחזר.כיצד להשתמש בשיטת contains()?
הנה איך אתה יכול להשתמש בו.public class ContainsMethod {
public static void main(String[] args) {
String input = "A brown fox jumped over a lazy dog.";
// check the containing strings
System.out.println("input.contains(bro) = " + input.contains("bro"));
System.out.println("input.contains(brown) = " + input.contains("brown"));
System.out.println("input.contains(Brown) = " + input.contains("Brown"));
System.out.println("input.contains(fox) = " + input.contains("fox"));
System.out.println("input.contains(xof) = " + input.contains("xof"));
System.out.println("input.contains(dog) = " + input.contains("dog"));
System.out.println("input.contains(lazyy) = " + input.contains("lazyy"));
System.out.println("input.contains(jumping) = " + input.contains("jumping"));
}
}
תְפוּקָה
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // false כי input.contains(fox) תלוי-רישיות = true input.contains(xof) = false // false כי הסדר צריך להיות זהה input.contains(dog) = true input.contains(lazyy) = false // false כי לא נמצאה תת-מחרוזת שלמה input.contains(jumping) = false
הסבר קוד
שימו לב, שיטה זו תלויה לאותיות גדולות עבור פרמטרי קלט. אז בקטע הנ"ל, אתה יכול לראות כאשר אתה מחפש "חום" מוחזר true , בעוד ש false מוחזר עבור "חום". כמו כן, תקבל אמת אם תמצא "פוקס" ו- false עבור "xof" או "oxf" מכיוון שסדר התווים צריך להיות זהה. לבסוף, אם תמצא "קפיצה" או "קפיצה" תקבל אמת מכיוון שכל הפרמטר קיים במחרוזת " קלט ". בעוד שאם תבדוק אם יש "קפיצה" מוחזר false מכיוון שהמפתח כולו ("קפיצה") לא נמצא.טיפול בחריגים
שיטת java.lang.String.contains() גורמת ל-Null Pointer Exception אם תשכח לאתחל את מחרוזת הפרמטרים עם ערך קונקרטי כלשהו.public class ContainsMethod {
public static void main(String[] args) {
String input = "Here is a test string.";
String test = null;
// check what happens if you look for a null string
System.out.println("input.contains(test) = " + input.contains(test));
}
}
תְפוּקָה
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.contains(String.java:2133)
at ContainsMethod.main(ContainsMethod.java:8)
GO TO FULL VERSION