Obter Entrada do Utilizador em Java

Rupam Yadav 12 outubro 2023
  1. Scanner para obter a entrada do utilizador em Java
  2. BufferedReader para obter a entrada do utilizador em Java
Obter Entrada do Utilizador em Java

Neste artigo, discutiremos a melhor abordagem para obter a entrada do utilizador em Java. Embora haja muitas formas de o fazer, alguns desses métodos já estão depreciados, e assim estaremos a evitá-los.

Scanner para obter a entrada do utilizador em Java

Podemos utilizar o Scanner para atingir o nosso objectivo. Precisamos de criar um objecto da classe e passar o System.in ao seu construtor porque abre um InputStream para obter a entrada do utilizador.

O passo seguinte é utilizar o objecto Scanner e chamar um dos seguintes métodos. Cada método toma o valor de entrada dos diferentes tipos de dados.

Método Descrição
next() Valor da string
nextInt() Valor inteiro
nextByte() Valor do byte
nextLong() Valor longo
nextFloat() Valor do flutuador
nextDouble() Valor duplo

No nosso exemplo abaixo, utilizaremos o método nextInt(), que toma valores inteiros.

Exemplo:

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner inputReader = new Scanner(System.in);
    System.out.println("Enter a number: ");
    int number = inputReader.nextInt();

    System.out.println("Your entered number was: " + number);
  }
}

Resultado:

Enter a number: 
454
Your entered number was: 454

BufferedReader para obter a entrada do utilizador em Java

Temos outra classe que poderia obter o input do utilizador. O BufferedReader utiliza fluxos de caracteres para ler o texto da entrada, enquanto que o Scanner pode ser utilizado quando nós somos o tipo primitivo de entrada.

Isto significa que não tem métodos como nextInt() na classe BufferedReader, mas tem um método readLine() que leva o input e depois podemos analisá-lo mais tarde.

No exemplo abaixo, estamos a tomar o input como um int. Temos de ler o input e depois analisá-lo em tipo int utilizando Integer.parseInt(String). Devemos rodear as afirmações por um bloco de try-catch, uma vez que a IOException pode aparecer se não houver dispositivos de entrada externos.

Exemplo:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
  public static void main(String[] args) throws IOException {
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);

    try {
      System.out.println("Please enter a number: ");
      String s = br.readLine();
      int i = Integer.parseInt(s);

      System.out.println("Your entered number was: " + i);
    } catch (IOException e) {
      e.printStackTrace();
    }

    br.close();
  }
}

Resultado:

Please enter a number: 
454
Your entered number was: 454
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java Input