Deze functie is speciaal ontworpen om te controleren of een string een andere string 'bevat' of niet. Als dit nieuw voor je is, zou je het uiteindelijk kunnen gebruiken om een 'karakter' te vinden. Maar het zal het doel niet dienen. In dit artikel gaan we in op hoe java.lang.String.contains() wordt gebruikt, geïmplementeerd en welke uitzonderingen kunnen optreden als het niet zorgvuldig wordt gebruikt.
Wat is de contain() methode?
Je kunt de contain(String key) methode gebruiken om te " vinden " of een bepaalde string " key " aanwezig is binnen een bepaalde string of niet. Als "key" wordt gevonden, wordt "true" geretourneerd. Anders krijg je een "false".Interne implementatie
Deze methode is al geïmplementeerd door java.lang.String . U hoeft dit niet zelf uit te voeren. Hier is een korte uitleg ervan voor uw begrip.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
Code Uitleg
comes() methode, neemt een CharSequence als invoerparameter. Die later wordt omgezet in een "String". Vervolgens wordt deze uitdrukking berekend indexOf(key.toString()) > -1; . Dat betekent dat als die "sleutel" wordt gevonden bij een willekeurige index ("0" of hoger), dan wordt "true" geretourneerd. En als de sleutel niet wordt gevonden, wordt een "false" geretourneerd.Hoe gebruik je de contain() methode?
Hier is hoe je het kunt gebruiken.
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"));
}
}
Uitgang
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // false omdat hoofdlettergevoelig input.contains(fox) = true input.contains(xof) = false // false omdat de volgorde hetzelfde moet zijn input.contains(dog) = true input.contains(lazyy) = false // false omdat hele substring niet gevonden input.contains(jumping) = false
Code Uitleg
Let op, deze methode is hoofdlettergevoelig voor invoerparameters. Dus in het bovenstaande fragment kun je zien dat wanneer je zoekt naar "bruin", true wordt geretourneerd, terwijl false wordt geretourneerd voor "Bruin". Je krijgt ook waar als je 'fox' en ' false' vindt voor 'xof' of 'oxf', omdat de volgorde van de tekens hetzelfde moet zijn. Ten slotte, als u "jump" of "jumped" vindt, krijgt u een true omdat de hele parameter aanwezig is in de " input "-tekenreeks. Terwijl, als u controleert op "jumping", wordt false geretourneerd omdat de volledige sleutel ("jumping") niet is gevonden.Uitzonderingen verzorgen
De methode java.lang.String.contains() resulteert in een Null Pointer Exception als u vergeet de parameterreeks met een concrete waarde te initialiseren.
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));
}
}
Uitgang
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