ฟังก์ชันนี้ออกแบบมาเป็นพิเศษเพื่อตรวจสอบว่าสตริง 'มี' สตริงอื่นหรือไม่ หากคุณยังใหม่กับสิ่งนี้ คุณอาจต้องใช้เพื่อค้นหา 'ตัวละคร' แต่จะไม่ตอบสนองวัตถุประสงค์ ในบทความนี้ เราจะพูดถึงวิธีการใช้java.lang.String.contains() และข้อยกเว้นที่อาจเกิดขึ้นหากใช้ไม่ระมัดระวัง

วิธีการประกอบด้วย () คืออะไร?

คุณสามารถใช้ เมธอด มี (คีย์สตริง)เพื่อ " ค้นหา " หากมีสตริง " คีย์ " อยู่ในสตริงนั้นหรือไม่ หากพบ "คีย์" ระบบจะส่งคืน "จริง" มิฉะนั้นคุณจะได้รับ "เท็จ"Java String ประกอบด้วย () วิธีการ - 1

การดำเนินการภายใน

วิธีการนี้ถูกนำมาใช้แล้วโดยjava.lang.String คุณไม่จำเป็นต้องใช้สิ่งนี้ด้วยตัวเอง นี่คือคำอธิบายสั้น ๆ เพื่อความเข้าใจของคุณ

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

คำอธิบายรหัส

มี ()วิธีการใช้ CharSequence เป็นพารามิเตอร์อินพุต ซึ่งภายหลังจะถูกแปลงเป็น "สตริง" จากนั้นนิพจน์นี้จะคำนวณindexOf(key.toString()) > -1; . ซึ่งหมายความว่า หากพบ "คีย์" นั้นที่ดัชนีใดๆ ( "0" หรือมากกว่า ) ระบบจะส่งคืนค่า "จริง" และหากไม่พบคีย์ ระบบจะส่งคืนค่า "เท็จ"

จะใช้วิธีประกอบด้วย () ได้อย่างไร

นี่คือวิธีที่คุณสามารถใช้งานได้

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

คำอธิบายรหัส

โปรดทราบว่าวิธีนี้คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับพารามิเตอร์อินพุต ดังนั้นในข้อมูลโค้ดข้างต้น คุณสามารถสังเกตได้ว่าเมื่อคุณค้นหาคำว่า "brown" จะถูกส่งคืน ค่า trueขณะที่ค่า falseจะถูกส่งคืนสำหรับค่า "Brown" นอกจากนี้ คุณจะได้รับความจริงหากคุณพบ "fox" และเท็จสำหรับ "xof" หรือ "oxf" เนื่องจากลำดับของอักขระต้องเหมือนกัน สุดท้าย หากคุณพบ "กระโดด" หรือ "กระโดด" คุณจะได้รับค่าจริงเนื่องจากพารามิเตอร์ทั้งหมดมีอยู่ในสตริง " อินพุต " ในขณะที่หากคุณตรวจสอบ "การกระโดด" เท็จจะถูกส่งกลับเนื่องจากไม่พบคีย์ทั้งหมด ("การกระโดด")

การดูแลข้อยกเว้น

วิธีการ java.lang.String.contains()ส่งผลให้เกิดข้อยกเว้นตัวชี้ Null หากคุณลืมที่จะเริ่มต้นสตริงพารามิเตอร์ด้วยค่าที่เป็นรูปธรรม

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)

บทสรุป

มี ()วิธีการจัดเตรียมยูทิลิตี้จาวาที่มีประโยชน์เพื่อค้นหาลำดับอักขระหรือสตริง เราหวังว่าในตอนท้ายของโพสต์นี้ คุณจะคุ้นเคยกับการใช้งานและการนำไปปฏิบัติ เพื่อความเข้าใจที่ดียิ่งขึ้น คุณควรพับแขนเสื้อแล้วไปทำงาน การสร้างรหัสที่ปราศจากข้อผิดพลาดมาพร้อมกับความพยายามอย่างสม่ำเสมอ มารับกันเลย! คุณสามารถกลับมาที่นี่ได้เสมอเมื่อคุณติดขัด มีความสุขในการเข้ารหัส :)