Questa funzione è appositamente progettata per verificare se una stringa "contiene" un'altra stringa o meno. Se sei nuovo in questo, potresti finire per usarlo per trovare un "personaggio". Ma non servirà allo scopo. In questo articolo, affronteremo come java.lang.String.contains() viene utilizzato, implementato e quali eccezioni possono sorgere se non utilizzate con attenzione.
Qual è il metodo contains()?
È possibile utilizzare il metodo contains(String key) per " trovare " se una determinata stringa " key " è presente o meno all'interno di una determinata stringa. Se viene trovata "key", viene restituito "true". Altrimenti otterrai un "falso".
Implementazione interna
Questo metodo è già implementato da java.lang.String . Non devi implementarlo tu stesso. Ecco una breve spiegazione per la tua comprensione.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
Codice Spiegazione
contains() , accetta un CharSequence come parametro di input. Che viene successivamente convertito in una "Stringa". Quindi questa espressione viene calcolata indexOf(key.toString()) > -1; . Il che significa che se quella "chiave" viene trovata in qualsiasi indice ("0" o maggiore), viene restituito "vero". E se la chiave non viene trovata, viene restituito un "falso".Come utilizzare il metodo contains()?
Ecco come puoi usarlo.
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"));
}
}
Produzione
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // false perché fa distinzione tra maiuscole e minuscole input.contains(fox) = true input.contains(xof) = false // false perché l'ordine dovrebbe essere lo stesso input.contains(dog) = true input.contains(lazyy) = false // false perché l'intera sottostringa non è stata trovata input.contains(jumping) = false
Codice Spiegazione
Si prega di notare che questo metodo fa distinzione tra maiuscole e minuscole per i parametri di input. Quindi, nello snippet sopra, puoi osservare quando cerchi "marrone" viene restituito vero , mentre falso viene restituito per "marrone". Inoltre, diventerai true se trovi "fox" e false per "xof" o "oxf" perché l'ordine dei caratteri deve essere lo stesso. Infine, se trovi “jump” o “jumped” otterrai un true in quanto l'intero parametro è presente nella stringa “ input ”. Considerando che, se controlli "jumping", false viene restituito perché l'intera chiave ("jumping") non viene trovata.Prendersi cura delle eccezioni
Il metodo java.lang.String.contains() genera un'eccezione puntatore nullo se si dimentica di inizializzare la stringa del parametro con un valore concreto.
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));
}
}
Produzione
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