Como funciona o método findWithinHorizon Java Trabalho?
Sem chafurdando em muitos detalhes, veja aqui como o findWithinHorizon ( ".", 0) .charAt (0) técnica funciona: Java de findWithinHorizon método procura coisas na entrada. As coisas que o método localiza dependem do material que você colocar entre parênteses. Por exemplo, uma chamada para findWithinHorizon ( " d d d", 0) olha para um grupo que consiste de três dígitos. Com a seguinte linha de código
System.out.println (keyboard.findWithinHorizon ( " d d d", 0)) -
Você pode digitar
Testando 123 Testing Testing
e o computador responde exibindo
123
Na chamada findWithinHorizon ( " d d d", 0), cada d representa um único dígito. este d negócio é uma das muitas abreviaturas em código especial chamado expressões regulares.
Ora aqui está algo estranho. No mundo das expressões regulares, um ponto significa qualquer personagem em tudo. (Isto é, um ponto significa # 147 qualquer personagem, não necessariamente um ponto. # 148-) Então, findWithinHorizon ( ".", 0) diz ao computador para encontrar o próximo caractere de qualquer tipo que o usuário digita no teclado. Quando você está tentando introduzir um único personagem, findWithinHorizon ( ".", 0) é poderoso útil.
Na chamada findWithinHorizon ( " d d d", 0), a 0 diz findWithinHorizon para manter pesquisando até o final da entrada. este valor 0 é um caso especial porque qualquer coisa que não seja 0 limita a pesquisa de um certo número de caracteres. (É por isso que o nome do método contém a palavra horizonte. o horizonte é, tanto quanto o método vê) Aqui estão alguns exemplos.:
Com a mesma entrada Testando 123 Testing Testing, a chamada findWithinHorizon ( " d d d", 9) retornos nulo. ele retorna nulo porque os primeiros nove caracteres da entrada (os caracteres teste 1 - sete letras, um espaço em branco, e um dígito) não contêm três dígitos consecutivos. Estes nove personagens não correspondem ao padrão D d d.
Com a mesma entrada, a chamada findWithinHorizon ( " d d d", 10) também retorna nulo. ele retorna nulo porque os dez primeiros caracteres da entrada (os personagens testes 12) Não contêm três dígitos consecutivos.
Com a mesma entrada, a chamada findWithinHorizon ( " d d d", 11) retornos 123. ele retorna 123 porque os primeiros 11 caracteres da entrada (os personagens Testando 123) Contêm estes 3 dígitos consecutivos.
Com a entrada A57B442123 Testing, a chamada findWithinHorizon ( " d d d", 12) retornos 442. ele retorna 442 porque entre os 12 primeiros caracteres da entrada (os personagens Teste A57B442123), A primeira sequência que consiste 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 da charAt (0) na leitura de um único caractere? Qualquer findWithinHorizon chamada se comporta como se estivesse encontrando um monte de personagens, e não apenas um único personagem. Mesmo quando você chamar findWithinHorizon ( ".", 0), eo computador vai buscar apenas uma letra no teclado, o programa Java trata essa carta como um dos possivelmente muitos caracteres de entrada.
A chamada para charAt (0) cuida do problema multi caracteres. este charAt (0) chamada informa Java para pegar o caráter inicial de qualquer um dos personagens que findWithinHorizon busca.