Denne funksjonen er spesielt utviklet for å sjekke om en streng 'inneholder' en annen streng eller ikke. Hvis du er ny på dette, kan du ende opp med å bruke det til å finne en "karakter". Men det vil ikke tjene formålet. I denne artikkelen tar vi for oss hvordan java.lang.String.contains() brukes, implementeres og hvilke unntak som kan oppstå hvis de ikke brukes forsiktig.
Hva er contains()-metoden?
Du kan bruke contains(String key) -metoden for å " finne " hvis en bestemt streng " nøkkel " er til stede i en bestemt streng eller ikke. Hvis "nøkkel" blir funnet, returneres "true". Ellers får du en "falsk".
Intern implementering
Denne metoden er allerede implementert av java.lang.String . Du trenger ikke implementere dette selv. Her er en rask forklaring på det for din forståelse.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
Kodeforklaring
contains()- metoden, tar en CharSequence som en inngangsparameter. Som senere konverteres til en "streng". Deretter beregnes dette uttrykket indexOf(key.toString()) > -1; . Hvilket betyr at hvis "nøkkelen" er funnet ved en hvilken som helst indeks ("0" eller høyere), så returneres "true". Og hvis nøkkelen ikke blir funnet, returneres en "falsk".Hvordan bruker jeg contains()-metoden?
Slik kan du bruke den.
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"));
}
}
Produksjon
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // false fordi det skilles mellom store og små bokstaver input.contains(fox) = true input.contains(xof) = false // false fordi rekkefølgen skal være den samme input.contains(dog) = true input.contains(lazyy) = false // false fordi hele understrengen ikke ble funnet input.contains(jumping) = false
Kodeforklaring
Vær oppmerksom på at denne metoden skiller mellom store og små bokstaver for inngangsparametere. Så i utdraget ovenfor kan du se når du søker på «brown» returneres true , mens false returneres for «brown». Du vil også få sannhet hvis du finner "rev" og falsk for "xof" eller "oxf" fordi rekkefølgen på tegnene må være den samme. Til slutt, hvis du finner "hopp" eller "hoppet" vil du få en sann da hele parameteren er tilstede i " input "-strengen. Mens, hvis du sjekker for "hopping", returneres false fordi hele nøkkelen ("hopping") ikke er funnet.Ta vare på unntak
metoden java.lang.String.contains() resulterer i et Null Pointer Unntak hvis du glemmer å initialisere parameterstrengen med en konkret verdi.
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));
}
}
Produksjon
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