Ta funkcja jest specjalnie zaprojektowana do sprawdzania, czy ciąg „zawiera” inny ciąg, czy nie. Jeśli jesteś nowy w tym, możesz w końcu użyć go do znalezienia „postaci”. Ale to nie będzie służyć celowi. W tym artykule omówimy, w jaki sposób java.lang.String.contains() jest używana, implementowana i jakie wyjątki mogą się pojawić, jeśli nie jest używana ostrożnie.
Co to jest metoda zawiera()?
Możesz użyć metody zawiera(String klucz), aby „ znaleźć ”, czy określony ciąg „ klucz ” jest obecny w określonym ciągu, czy nie. Jeśli „klucz” zostanie znaleziony, zwracane jest „true”. W przeciwnym razie otrzymasz „fałsz”.
Implementacja wewnętrzna
Ta metoda jest już zaimplementowana przez java.lang.String . Nie musisz tego wdrażać samodzielnie. Oto krótkie wyjaśnienie tego dla zrozumienia.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
Wyjaśnienie kodu
zawiera() metoda, przyjmuje CharSequence jako parametr wejściowy. Który jest później konwertowany na „String”. Następnie to wyrażenie jest obliczane indexOf(key.toString()) > -1; . Oznacza to, że jeśli ten „klucz” zostanie znaleziony w dowolnym indeksie („0” lub większym), zwracana jest wartość „prawda”. A jeśli klucz nie zostanie znaleziony, zwracany jest „fałsz”.Jak korzystać z metody zawiera()?
Oto jak możesz go użyć.
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"));
}
}
Wyjście
input.contains(bro) = prawda
input.contains(brown) = true
input.contains(Brown) = false // false, ponieważ rozróżniana jest wielkość liter
input.contains(fox) = prawda
input.contains(xof) = false // false, ponieważ kolejność powinna być taka sama
input.contains(dog) = prawda
input.contains(lazyy) = false // false, ponieważ nie znaleziono całego podłańcucha
input.contains(skoki) = false
Wyjaśnienie kodu
Należy pamiętać, że ta metoda uwzględnia wielkość liter w parametrach wejściowych. Tak więc w powyższym fragmencie możesz zaobserwować, że podczas wyszukiwania „brązowego” zwracana jest prawda , podczas gdy zwracana jest wartość fałsz dla „brązowego”. Otrzymasz również wartość true , jeśli znajdziesz „lis” i fałsz dla „xof” lub „oxf”, ponieważ kolejność znaków musi być taka sama. Wreszcie, jeśli znajdziesz „skok” lub „skok”, otrzymasz prawdę, ponieważ cały parametr jest obecny w ciągu „ wejściowym ”. Natomiast jeśli sprawdzisz „skoki”, zwracany jest fałsz , ponieważ cały klucz („skoki”) nie został znaleziony.Opieka nad wyjątkami
Metoda java.lang.String.contains() powoduje wyjątek Null Pointer Exception, jeśli zapomnisz zainicjować łańcuch parametrów jakąś konkretną wartością.
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));
}
}
Wyjście
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