این تابع برای بررسی اینکه آیا یک رشته دارای رشته دیگری است یا خیر طراحی شده است. اگر در این کار تازه کار هستید، ممکن است در نهایت از آن برای پیدا کردن یک «شخصیت» استفاده کنید. اما این هدف را برآورده نخواهد کرد. در این مقاله، نحوه استفاده، پیادهسازی ()java.lang.String.contains و موارد استثنایی که در صورت عدم استفاده دقیق ممکن است ایجاد شود، خواهیم گفت .
متد contain() چیست؟
شما می توانید از متد contain (کلید رشته) برای " پیدا کردن " استفاده کنید که آیا یک رشته خاص " کلید " در یک رشته خاص وجود دارد یا خیر. اگر "کلید" پیدا شد، "درست" برگردانده می شود. در غیر این صورت شما یک "کاذب" دریافت خواهید کرد.
پیاده سازی داخلی
این روش قبلاً توسط java.lang.String پیاده سازی شده است . لازم نیست خودتان این را اجرا کنید. در اینجا یک توضیح سریع از آن برای درک شما آورده شده است.public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
توضیح کد
متد contain() یک CharSequence را به عنوان پارامتر ورودی می گیرد. که بعداً به "رشته" تبدیل می شود. سپس این عبارت محاسبه می شود indexOf(key.toString()) > -1; . به این معنی که اگر آن "کلید" در هر شاخصی ("0" یا بیشتر) یافت شود، "true" برگردانده می شود. و اگر کلید پیدا نشد، یک "false" برگردانده می شود.چگونه از متد contain() استفاده کنیم؟
در اینجا نحوه استفاده از آن آورده شده است.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 چون ترتیب باید ورودی یکسان باشد.contains(dog) = true input.contains(lazyy) = false // false زیرا کل زیر رشته پیدا نشد input.contains(jumping) = false
توضیح کد
لطفاً توجه داشته باشید، این روش برای پارامترهای ورودی به حروف بزرگ و کوچک حساس است. بنابراین در قطعه بالا، میتوانید مشاهده کنید که وقتی جستجو میکنید «قهوهای» true برگردانده میشود، در حالی که false برای «قهوهای» برگردانده میشود. همچنین، اگر «روباه» و نادرست را برای «xof» یا «oxf» بیابید درست میشوید زیرا ترتیب کاراکترها باید یکسان باشد. در نهایت، اگر "jump" یا "jumped" را پیدا کنید، یک مقدار درست دریافت خواهید کرد زیرا کل پارامتر در رشته " input " وجود دارد. در حالی که اگر "پرش" را بررسی کنید ، false برگردانده می شود زیرا کل کلید ("پرش") یافت نشد.مراقبت از استثناها
اگر فراموش کنید رشته پارامتر را با مقدار مشخصی مقداردهی اولیه کنید، متد java.lang.String.contains منجر به یک استثنای اشاره گر تهی می شود.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