Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida obre contains

Pode me explicar como ele viu que existe uma substring? pq não entendi essa tal de substring na Alu

System.out.println(vazio.contains("Alu"));
1 resposta
solução!

Olá, Diogo. Tudo bem?

Uma substring é uma String que está contida em outra String. Se "Alura" é uma string e "Alu" também é, então "Alu" é uma substring de "Alura". Para descobrir se uma string X é substring de uma string Y, basta você percorrer a string caractere por caractere e verificar se em algum local de Y tem caracteres iguais a X.

Para fazer isso, usamos algorítmos de reconhecimento de padrões. Temos um texto queremos saber se dentro dele temos um pedaço que é igual ao padrão que estamos procurando.

Por exemplo:

public static int verificaSeEhSubstring(char[] padrao, char[] texto) {
    int tamanhoDoPadrao = padrao.length;
    int tamanhoDoTexto= texto.length;

    int i = 0;

    while ((i + tamanhoDoPadrao) <= tamanhoDoTexto) {
        int j = 0;
        while (texto[i + j] == padrao[j]) {
            j += 1;
            if (j >= tamanhoDoPadrao)
                return i;
        }
        i += 1;
    }
    return -1;
}

Checamos se a string que queremos saber se faz parte de outra tem um tamanho menor ou igual, pois se for maior já não tem como. Olhamos a primeira letra do texto que estamos analisando e, se for igual à primeira letra do padrão que estamos procurando, checamos se a seguinte também é igual. Se não for, apenas passamos para a próxima letra do texto e repetimos o processo.

O Java tem na sua biblioteca de Strings o método contains que, internamente, utiliza algum algorítmo de reconhecimento de padrões.

Espero ter ajudado.