Como obter informações de um usuário em Java (com imagens)

Índice:

Como obter informações de um usuário em Java (com imagens)
Como obter informações de um usuário em Java (com imagens)

Vídeo: Como obter informações de um usuário em Java (com imagens)

Vídeo: Como obter informações de um usuário em Java (com imagens)
Vídeo: 💥 Como ganhar com o nano-vírus/brutal sem genes no plague inc [PT-BR] 2024, Abril
Anonim

Ao programar em Java ou qualquer outra linguagem, você provavelmente precisará usar as informações de entrada de um usuário. Java fornece muitos métodos diferentes para obter informações do usuário, mas o método mais comum e talvez o mais fácil de implementar é usar o objeto Scanner.

Passos

Método 1 de 2: vídeos

1514756 1
1514756 1

Etapa 1. Importe a classe Scanner

Você pode escolher importar o

java.util. Scanner

classe ou todo

java.util

pacote. Para importar uma classe ou pacote, adicione uma das seguintes linhas no início do seu código:

    import java.util. Scanner; // Isso importará apenas a classe Scanner. import java.util. *; // Isso importará todo o pacote java.util.

1514756 2
1514756 2

Etapa 2. Inicialize um novo objeto Scanner passando o

System.in

fluxo de entrada para o construtor.

System.in

é o fluxo de entrada padrão que já está aberto e pronto para fornecer dados de entrada. Normalmente, esse fluxo corresponde à entrada do teclado.

    Scanner userInputScanner = novo Scanner (System.in);

1514756 3
1514756 3

Etapa 3. Leia os diferentes tipos de dados de entrada inseridos pelo usuário

A classe Scanner suporta a obtenção de primitivos como int, byte, short, long, além de obter cadeias de caracteres.

  • Aqui estão alguns métodos que estão disponíveis por meio da classe Scanner:

    • Leia um byte -

      nextByte ()

    • Leia um curto -

      nextShort ()

    • Leia um int -

      nextInt ()

    • Leia junto -

      nextLong ()

    • Leia um carro alegórico -

      nextFloat ()

    • Leia um duplo -

      nextDouble ()

    • Leia um booleano -

      nextBoolean ()

    • Leia uma linha completa -

      nextLine ()

    • Leia uma palavra -

      próximo()

  • Aqui está um exemplo de um programa que usa métodos diferentes da classe Scanner para obter diferentes tipos de entrada:

      import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar um novo Scanner Scanner userInputScanner = new Scanner (System.in); // Testando nextLine (); System.out.println ("\ nQual é o seu nome?"); Nome da string = userInputScanner.nextLine (); // Testando nextInt (); System.out.print ("Quantos gatos você tem?"); int numberOfCats = userInputScanner.nextInt (); // Testando nextDouble (); System.out.print ("Quanto dinheiro tem em sua carteira? $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nOlá" + name + "! Você tem" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "e $" + moneyInWallet + "em sua carteira. / N"); }}

Método 2 de 2: Tratamento de exceções

1514756 4
1514756 4

Etapa 1. Lidar com exceções de entrada

Um

InputMismatchException

é lançado quando o usuário insere dados que não correspondem ao tipo solicitado. Por exemplo, se o usuário inserir uma String quando um int for solicitado, o programa lançará um

InputMismatchException

e saia. Existem várias maneiras de lidar com essa exceção e resolver esse problema para que seu programa seja à prova de falhas.

1514756 5
1514756 5

Etapa 2. Use um bloco try-catch para lidar com o

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar um novo Scanner Scanner userInputScanner = new Scanner (System.in); // Testando nextLine (); System.out.print ("\ nQual é o seu nome?"); Nome da string = userInputScanner.nextLine (); // Testando nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Quantos gatos você tem?"); tente {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testando nextDouble (); validInput = false; double moneyInWallet = 0,0; while (! validInput) {System.out.print ("Quanto dinheiro tem em sua carteira? $"); tente {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nOlá" + name + "! Você tem" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "e $" + moneyInWallet + "em sua carteira. / n "); }}

  • Observe que temos que importar

    java.util. InputMismatchException

    a fim de usar o

    InputMismatchException

  • classe.
  • Estamos usando um loop while para fazer ao usuário a mesma pergunta até que ele insira a entrada correta.
  • Adicionando

    userInputScanner.nextLine ();

  • na parte catch do try-catch garante que o Scanner reconheça o pressionamento da tecla "enter" do usuário e funcione como uma forma de limpar o buffer de entrada.
1514756 6
1514756 6

Etapa 3. Como alternativa, torne a entrada do usuário à prova de falhas, obtendo apenas as próximas linhas do scanner

Dessa forma, podemos garantir que tudo o que o Scanner retorna é um objeto String e não criará nenhuma exceção. Então, para converter as strings em inteiros ou duplos, podemos usar as classes Integer e Double wrapper.

    import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar um novo Scanner Scanner userInputScanner = new Scanner (System.in); // Testando nextLine (); System.out.print ("\ nQual é o seu nome?"); Nome da string = userInputScanner.nextLine (); // Testando nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Quantos gatos você tem?"); String input = userInputScanner.nextLine (); tente {numberOfCats = Integer.parseInt (entrada); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Testando nextDouble (); validInput = false; double moneyInWallet = 0,0; while (! validInput) {System.out.print ("Quanto dinheiro tem em sua carteira? $"); String input = userInputScanner.nextLine (); tente {moneyInWallet = Double.parseDouble (entrada); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nOlá" + name + "! Você tem" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "e $" + moneyInWallet + "em sua carteira. / n "); }}

  • Observe que aqui não foi necessário importar o

    NumberFormatException

  • classe porque faz parte do pacote java.lang, o que significa que vem embutido.
  • Também não tivemos que limpar o buffer usando

    userInputScanner.nextLine ();

  • na parte de captura do try-catch.

Pontas

  • Consulte a API do Scanner para obter mais informações sobre como usar a classe Scanner.
  • Sempre use.next () em vez de.nextLine () para ler a próxima palavra, pois.nextLine () pode apresentar erros.

Recomendado: