Lar Finanças Pessoais Como obter entrada com a classe de scanner do Java - manequins

Como obter entrada com a classe de scanner do Java - manequins

Índice:

Vídeo: Programar em Java - Interagir com o usuário | "Scanner" - Aula 11 2024

Vídeo: Programar em Java - Interagir com o usuário | "Scanner" - Aula 11 2024
Anonim

Até Java 1. 5, obter a entrada de texto do usuário em um programa Java baseado em console não foi fácil. Mas com Java 1. 5, uma nova classe - chamada Scanner - foi introduzida para simplificar a tarefa de obter a entrada do usuário. Aqui, você usa a classe Scanner para obter valores de entrada simples do usuário. As técnicas que eu apresento aqui são usadas em muitos dos programas mostrados no restante deste livro.

Se você estiver usando uma versão mais antiga do Java, você ainda deve ler isso porque muitos programas usam a classe Scanner .

O programa simples abaixo usa a classe Scanner para ler um valor inteiro do usuário e, em seguida, exibe o valor de volta ao console para verificar se o programa recebeu o valor inserido pelo usuário. Aqui está uma amostra da janela do console para este programa:

Digite um número inteiro: 5

Você digitou 5.

O programa começa exibindo a mensagem Digite um número inteiro: na primeira linha. Então espera que você digite um número. Quando você digita um número (como 5) e pressione a tecla Enter, ele exibe a mensagem de confirmação ( Você digitou 5 .) Na segunda linha.

importar java. util. Scanner; @@ ra1

classe pública ScannerApp

{

scanner estático sc = novo Scanner (System in); @@ ra6

public static void main (String [] args)

{

Sistema. Fora. imprimir ("Digite um número inteiro:"); @@ ra10

int x = sc. nextInt (); @@ ra11

Sistema. Fora. println ("Você inseriu" + x + "."); @@ ra12

}

}

Importando a classe Scanner em Java

Antes de usar a classe Scanner em um programa, você deve importá-lo. Para fazer isso, você codifica uma declaração import no início do programa, antes da declaração de classe:

importar java. util. Scanner;

Observe que java e util não estão em maiúsculas, mas Scanner é.

Se você estiver usando outras classes no java. util , você pode importar todo o pacote codificando a indicação import como esta:

importar java. util. *;

Declarando e criando um objeto Scanner em Java

Antes de poder usar a classe Scanner para ler a entrada do console, você deve declarar uma variável Scanner e criar uma instância da classe Scanner . Você pode querer criar a variável Scanner como uma variável de classe e criar o objeto Scanner no iniciador da variável de classe, conforme mostrado na linha 6 do programa acima:

scanner estático sc = novo Scanner (System in);

Dessa forma, você pode usar a variável sc em qualquer método da classe.

Para criar um objeto Scanner , você usa a palavra-chave nova seguida de uma chamada para o construtor de classe Scanner . Observe que a classe Scanner requer um parâmetro que indique o fluxo de entrada de que a entrada vem. Você pode usar Sistema. em aqui para especificar a entrada padrão do console do teclado.

Obter entrada

Para ler um valor de entrada do usuário, você pode usar um dos métodos da classe Scanner que estão listados abaixo. Como você pode ver, o tipo de dados primitivo tem um método separado.

Métodos da classe do scanner que obtêm valores de entrada
Método Explicação
booleano nextBoolean () Lê um valor booleano do usuário.
byte nextByte () Lê um valor byte do usuário.
double nextDouble () Lê um valor duplo do usuário.
float nextFloat () Lê um valor float do usuário.
int nextInt () Lê um valor int do usuário.
String nextLine () Lê um valor String do usuário.
long nextLong () Lê um valor longo do usuário.
short nextShort () Lê um valor curto do usuário.

Observe na primeira coluna da tabela que cada listagem de métodos começa com o tipo do valor retornado pelo método. O método nextInt , por exemplo, retorna um valor int . Além disso, note que cada um dos métodos termina com um conjunto vazio de parênteses. Isso significa que esses métodos não requerem parâmetros. Se um método requer parâmetros, os parâmetros estão listados nesses parênteses.

Como esses métodos lêem um valor do usuário e retornam o valor, você geralmente usa em instruções que atribuem o valor a uma variável. A linha 11, por exemplo, lê um int e atribui-lo a uma variável chamada x .

Quando o método nextInt é executado, o programa espera que o usuário insira um valor na janela do console. Para permitir que o usuário saiba qual tipo de entrada o programa espera, geralmente você deve chamar o sistema . Fora. imprima o método antes de chamar um método Scanner para obter a entrada. A linha 10 chama Sistema. Fora. imprima para exibir a mensagem Digite um número inteiro: no console. Dessa forma, o usuário sabe que o programa está aguardando a entrada.

Se o usuário inserir um valor que não pode ser convertido no tipo correto, o programa falha, o que significa que ele termina abruptamente. À medida que o programa falha, ele exibe uma mensagem de erro enigmática que indica o que causou a falha. Se você inserir três em vez de um número real, por exemplo, a janela do console parece algo assim:

Digite um número inteiro: três Exceção no java "main" principal. util. InputMismatchException

no java. util. Scanner. throwFor (Scanner. java: 819)

em java. util. Scanner. seguinte (Scanner. java: 1431)

em java. util. Scanner. NextInt (Scanner. java: 2040)

em java. util. Scanner. NextInt (Scanner. java: 2000)

no ScannerApp.principal (ScannerApp. java: 11)

Esta mensagem indica que ocorreu uma exceção chamada InputMismatchException , o que significa que o programa esperava ver um número inteiro, mas obteve outra coisa em vez disso. Se você não sabe como fornecer exceções como essas para que o programa possa exibir uma mensagem mais amigável e dar ao usuário outro tiro ao inserir um valor correto, você deve aguentar o fato de que, se o usuário inserir dados incorretos, Seu programa falha sem graça.

Você pode impedir que o nextInt e métodos similares de falhar com dados de entrada incorretos usando primeiro um dos métodos listados aqui para testar a próxima entrada para se certificar de que é válido.

Métodos da classe do scanner que verificam as validades de entrada válidas
Método Explicação
boolean hasNextBoolean () Retorna true se o próximo valor inserido pelo usuário for válido < valor booleano . boolean hasNextByte ()
Retorna true se o próximo valor inserido pelo usuário for um valor byte válido. boolean hasNextDouble ()
Retorna true se o próximo valor inserido pelo usuário é um valor duplo válido. boolean hasNextFloat ()
Retorna true se o próximo valor inserido pelo usuário for um valor float válido. boolean hasNextInt ()
Retorna true se o próximo valor inserido pelo usuário é um valor int válido. boolean hasNextLong ()
Retorna true se o próximo valor inserido pelo usuário for um valor válido longo . boolean hasNextShort ()
Retorna true se o próximo valor inserido pelo usuário é um valor curto válido.
Como obter entrada com a classe de scanner do Java - manequins

Escolha dos editores

Acalma suas emoções ao praticar Mindfulness - dummies

Acalma suas emoções ao praticar Mindfulness - dummies

Aqui, você descobre a maneira consciente de gerenciar as emoções - as etapas para tome quando estiver sentindo baixo, excessivamente irritado ou desconfortavelmente ansioso. As emoções positivas podem ser um sentimento maravilhoso. A alegria, a alegria, a emoção e a felicidade são perfeitas. Mas como você pode lidar com as chamadas emoções negativas? Use a atenção para a saúde emocional A atenção plena está se tornando ...

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Você pode encontrar a meditação mindfulness é uma ótima maneira de Comece o seu dia de trabalho. Quando chegar ao trabalho pela manhã, talvez já esteja estressado. Depois de uma agitada hora ou duas preparando as crianças para a escola ou regatear com seu parceiro ou lidar com alguma emergência em casa, seguido de ...

Os melhores sites Mindfulness - dummies

Os melhores sites Mindfulness - dummies

, Independentemente de você morar no Reino Unido ou em outro lugar, se você procurar "mindfulness" 'on-line, você literalmente obterá milhões de resultados. Como você pode dizer o trigo da palha? Aqui estão alguns sites que você achará útil. Atento. Este recurso maravilhoso tem muitos conteúdos de alta qualidade de professores excelentes de atenção plena. O ...

Escolha dos editores

HDR Solução de problemas: Nada está funcionando - manequins

HDR Solução de problemas: Nada está funcionando - manequins

Quando você se depara com uma situação com suas fotografias de alcance dinâmico elevado e parece que nada que você está fazendo está funcionando - as configurações não parecem boas, a imagem parece errada, os efeitos são ruins - relaxe e faça uma pausa. A imagem está lhe dizendo algo. Que algo às vezes é relacionado a forçar ...

HDR Resolução de problemas: falta de imaginação - dummies

HDR Resolução de problemas: falta de imaginação - dummies

A imaginação é uma coisa poderosa ao preparar imagens HDR, fato que é tornou-se mais óbvio quando você vê o resultado de não usá-lo versus usá-lo. A imagem superior desta figura é uma imagem HDR de um diner local durante a "hora dourada" - naquele horário atrasado (ou manhã) quando ...

HDR Solução de problemas: Sharpening - dummies

HDR Solução de problemas: Sharpening - dummies

Se você ficar apanhado na perfeição, você está preparado para aumentar seu HDR imagens. Os fotógrafos às vezes estão obcecados com a nitidez em suas fotos. Eles querem que tudo seja pixelly perfeitamente afiado do nariz da câmera até o infinito, independentemente da lente, abertura, ISO ou velocidade do obturador que eles usem. Esta figura mostra os resultados ...

Escolha dos editores

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Em qualquer componente de rede da Cisco, o show O comando de versão é aplicável a qualquer hardware usando o Sistema Operacional Cisco IET (Internetwork Operating System), incluindo switches. O comando show version mostra informações ligeiramente diferentes, de acordo com o tipo de dispositivo em que você usa. Veja a saída do comando show version em um switch e ...

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Você precisa usar o modo EXEC privilegiado se quiser realmente tem acesso de atualização a um sistema de rede Cisco,. Para entrar neste modo no modo EXEC do usuário, emita o comando enable, que solicita uma senha, se configurado. Como o nome do modo sugere, este modo tem privilégios extras para permitir ...

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Shell seguro (SSH) é um protocolo de rede para seus dispositivos Cisco, que é mais seguro do que o Telenet. Definir uma senha segura é um requisito de configuração para este protocolo. Para configurar o acesso a um switch Cisco para SSH, você precisará ter uma conta de usuário criada em sua opção. O exemplo supõe que você tenha ...