Vídeo: Entenda como funciona o método iWinner! 2024
Sem retalhar com muito detalhe, veja como o findWithinHorizon (".", 0). A técnica de charAt (0) funciona: o método findWithinHorizon da Java procura coisas na entrada. As coisas que o método descobre dependem das coisas que você coloca entre parênteses. Por exemplo, uma chamada para encontrarWithinHorizon (" d d d", 0) procura um grupo composto por três dígitos. Com a seguinte linha de código
Sistema. Fora. println (teclado. findWithinHorizon (" d d d", 0));
Você pode digitar
Teste 123 Testando Testes
e o computador responde exibindo
123
Na chamada findWithinHorizon (" d d d", 0), cada d permanece por um único dígito. Este d negócio é uma das muitas abreviaturas em código especial chamado expressões regulares .
Agora, aqui está algo estranho. No mundo de expressões regulares, um ponto representa qualquer caractere. (Ou seja, um ponto significa "qualquer caractere, não necessariamente um ponto".) Então findWithinHorizon (".", 0) informa o computador para encontrar o próximo personagem de qualquer tipo que o usuário digita no teclado. Quando você está tentando inserir um único personagem, encontrarWithinHorizon (".", 0) é muito útil.
Na chamada findWithinHorizon (" d d d", 0), o 0 diz que findWithinHorizon continuará pesquisando até o final da entrada. Esse valor 0 é um caso especial porque qualquer coisa que não seja 0 limita a pesquisa a um certo número de caracteres. (É por isso que o nome do método contém a palavra horizonte . O horizonte é tão longe quanto o método vê.) Aqui estão alguns exemplos:
-
Com a mesma entrada Teste Testes 123 Testando, a chamada findWithinHorizon (" d d d", 9) retorna nulo. Ele retorna nulo porque os primeiros nove caracteres da entrada (os caracteres Testando 1 - sete letras, um espaço em branco e um dígito) não possuem três dígitos consecutivos. Esses nove caracteres não correspondem ao padrão d d d.
-
Com a mesma entrada, a chamada findWithinHorizon (" d d d", 10) também retorna nula. Ele retorna nulo porque os primeiros dez caracteres da entrada (os caracteres Teste 12) não contêm três dígitos consecutivos.
-
Com a mesma entrada, a chamada findWithinHorizon (" d d d", 11) retorna 123. Ele retorna 123 porque os primeiros 11 caracteres da entrada (os caracteres Testando 123) contêm esses 3 dígitos consecutivos.
-
Com a entrada A57B442123 Testing, a chamada findWithinHorizon (" d d d", 12) retorna 442. Devolve 442 porque entre os primeiros 12 caracteres da entrada (os caracteres A57B442123 Test), a primeira sequência consistindo de 3 dígitos consecutivos é a sequência 442.
Mas espere! Para pegar um único personagem a partir do teclado, você chama findWithinHorizon (".", 0). charAt (0). Qual é o papel de charAt (0) na leitura de um único personagem? Qualquer ligação FindInHorizon se comporta como se estivesse encontrando um monte de caracteres, não apenas um único personagem. Mesmo quando você chama findWithinHorizon (".", 0), e o computador obtém apenas uma letra do teclado, o programa Java trata essa carta como um dos possivelmente muitos caracteres de entrada.
A chamada para charAt (0) cuida do problema multicaracter. Esta chamada charAt (0) diz a Java para escolher o caractere inicial de qualquer um dos personagens que acham as buscas do InHorizon.