Esta função é especialmente projetada para verificar se uma string 'contém' outra string ou não. Se você é novo nisso, pode acabar usando-o para encontrar um 'personagem'. Mas não servirá ao propósito. Neste artigo, abordaremos como java.lang.String.contains() é usado, implementado e quais exceções podem surgir se não for usado com cuidado.
O que é o método contains()?
Você pode usar o método contains(String key) para “ encontrar ” se uma determinada string “ key ” está presente dentro de uma determinada string ou não. Se “key” for encontrado, “true” será retornado. Caso contrário, você obterá um "falso".
Implementação Interna
Este método já está implementado por java.lang.String . Você não precisa implementar isso sozinho. Aqui está uma explicação rápida para sua compreensão.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
Explicação do código
contains() , recebe um CharSequence como parâmetro de entrada. Que posteriormente é convertido em uma “String”. Então esta expressão é computada indexOf(key.toString()) > -1; . O que significa que, se essa “chave” for encontrada em qualquer índice ( “0” ou maior), então “true” será retornado. E se a chave não for encontrada, um “falso” será retornado.Como usar o método contains()?
Veja como você pode usá-lo.
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"));
}
}
Saída
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // false porque diferencia maiúsculas de minúsculas input.contains(fox) = true input.contains(xof) = false // false porque a ordem deve ser a mesma input.contains(dog) = true input.contains(lazyy) = false // false porque a substring inteira não foi encontrada input.contains(jumping) = false
Explicação do código
Observe que esse método diferencia maiúsculas de minúsculas para parâmetros de entrada. Portanto, no snippet acima, você pode observar que, ao pesquisar “brown”, true é retornado, enquanto false é retornado para “Brown”. Além disso, você obterá true se encontrar “fox” e false para “xof” ou “oxf” porque a ordem dos caracteres precisa ser a mesma. Por fim, se você encontrar “jump” ou “jumped”, obterá um verdadeiro , pois todo o parâmetro está presente na string “ input ”. Considerando que, se você verificar "jumping", false será retornado porque a chave inteira ("jumping") não foi encontrada.Cuidando das Exceções
O método java.lang.String.contains() resulta em uma exceção de ponteiro nulo se você esquecer de inicializar a string do parâmetro com algum valor 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));
}
}
Saída
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