Denna funktion är speciellt utformad för att kontrollera om en sträng 'innehåller' en annan sträng eller inte. Om du är ny på detta kan du sluta använda det för att hitta en "karaktär". Men det kommer inte att tjäna syftet. I den här artikeln kommer vi att ta upp hur java.lang.String.contains() används, implementeras och vilka undantag som kan uppstå om de inte används försiktigt.
Vad är contains()-metoden?
Du kan använda metoden contains(String key) för att " hitta " om en viss sträng " nyckel " finns i en viss sträng eller inte. Om "nyckel" hittas, returneras "true". Annars får du ett "falskt".
Internt genomförande
Denna metod är redan implementerad av java.lang.String . Du behöver inte implementera detta själv. Här är en snabb förklaring för din förståelse.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
Kodförklaring
contains()- metoden, tar en CharSequence som en indataparameter. Som senare omvandlas till en "sträng". Sedan beräknas detta uttryck indexOf(key.toString()) > -1; . Vilket betyder att om den "nyckeln" hittas vid något index ("0" eller högre) så returneras "true". Och om nyckeln inte hittas, returneras en "falsk".Hur använder man metoden contains()?
Så här kan du använda 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"));
}
}
Produktion
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // false eftersom skiftlägeskänslig input.contains(fox) = true input.contains(xof) = false // false eftersom ordningen ska vara samma input.contains(dog) = true input.contains(lazyy) = false // false eftersom hela delsträngen inte hittades input.contains(jumping) = false
Kodförklaring
Observera att denna metod är skiftlägeskänslig för inmatningsparametrar. Så i ovanstående kodavsnitt kan du se när du söker "brunt" returneras true , medan false returneras för "brunt". Du kommer också att bli sann om du hittar "räv" och falsk för "xof" eller "oxf" eftersom ordningen på tecken måste vara densamma. Slutligen, om du hittar "hoppa" eller "hoppade" får du ett sant eftersom hela parametern finns i " input "-strängen. Om du letar efter "hoppning" returneras false eftersom hela nyckeln ("hoppning") inte hittas.Ta hand om undantag
metoden java.lang.String.contains() resulterar i ett Null Pointer Exception om du glömmer att initialisera parametersträngen med något konkret värde.
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));
}
}
Produktion
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