Entrada de várias strings em Java usando o scanner [com exemplo de codificação]
Publicados: 2021-02-05Índice
Introdução
No pacote java.util, o scanner é uma das classes que auxiliam na coleta de múltiplas entradas dos tipos primitivos como double, integer, strings, etc. Embora não seja uma forma eficiente de ler entradas em um programa Java onde o tempo atua como restrição, é sem dúvida uma das maneiras mais fáceis de coletar várias entradas do usuário. Neste blog, você aprenderá como coletar várias entradas de string do usuário em um programa Java usando a classe scanner.
Métodos para obter várias entradas usando o scanner
Você deve importar o pacote java.util em um programa antes de usar a classe Scanner. A tabela a seguir lista os métodos usados para obter várias entradas de diferentes tipos do usuário em um programa Java.
Método | Entradas |
nextInt() | inteiro |
nextFloat() | Flutuador |
próximoDouble() | Dobro |
próximoLong() | Grandes |
próximoShort() | Curto |
Próximo() | Única palavra |
próximaLinha() | Linha de cordas |
nextBoolean() | boleano |
Usando o método Java nextLine()
O método java.util.Scanner.nextLine() retorna a linha que foi ignorada ao avançar o scanner além da linha atual. Se um separador de linha for fornecido no final da linha atual, esse método o excluirá e retornará o resto da string da linha atual. O scanner é definido no início da próxima linha e lê a string inteira, incluindo os espaços em branco das palavras.
A sintaxe para o método nextLine() é a seguinte:
String pública nextLine()
Esse método lança as duas exceções a seguir:

- NoSuchElementException – Se a string estiver vazia ou nenhuma linha for encontrada.
- IllegalStateException – Se o scanner estiver fechado.
Exemplo
O exemplo a seguir demonstra como o método java.util.Scanner.nextLine() coleta várias entradas do usuário.
importar java.util.Scanner; classe pública SacnnerDemoMultipleString { public static void main(String[] args) { Demonstração do scanner = new Scanner(System.in); System.out.print("Por favor, insira várias entradas que você deseja imprimir: "); // recebe uma entrada inteira String[] string = new String [demo.nextInt()]; //consumindo o <enter> da entrada acima demo.nextLine(); for (int i = 0; i < string.length; i++) { string[i] = demo.nextLine(); } System.out.println(“\nVocê digitou a seguinte entrada: “); //for-each loop para imprimir a string for(String str: string) { System.out.println(str); // fecha o scanner scanner.fechar(); } } } |
O programa acima imprimirá a seguinte saída
Insira várias entradas que deseja imprimir: 7 Misha atormentar Roberto Harvey Jill Rachel Jennifer Você inseriu a seguinte entrada: Misha atormentar Roberto Harvey Jill Rachel Jennifer |
Usando o método Java nextInt()
O método java.util.Scanner.nextInt() verifica a entrada fornecida pelo usuário como um número inteiro. Se um número inteiro for encontrado, o scanner avançará além da entrada correspondente.
A sintaxe para o método nextInt() é a seguinte:
Public int nextInt()
Esse método lança as três exceções a seguir:
- InputMismatchException – Se o próximo token não corresponder à expressão regular inteira ou se o próximo token estiver fora do intervalo.
- NoSuchElementException – Se a entrada estiver esgotada.
- IllegalStateException – Se o scanner estiver fechado.
Exemplo
O exemplo a seguir demonstra como o método java.util.Scanner.nextInt() coleta várias entradas do usuário.
// Programa Java para escanear inteiros usando Scanner // classifique e imprima sua média. importar java.util.Scanner; classe pública ScannerDemoInteger { public static void main(String[] args) { Demonstração do scanner = new Scanner(System.in); // Inicializa soma e contagem de elementos de entrada int soma = 0, contagem = 0; // Verifica se um valor inteiro está presente while (demo.hasNextInt()) ![]() { // Verifica um valor inteiro int num = demo.nextInt(); soma += numero; contagem++; } int média = soma / contagem; System.out.println(“Média: ” + média); } } |
O programa acima é alimentado com a seguinte entrada:
101 223 238 892 99 500 728 |
O programa acima imprimirá a seguinte saída:
Média: 397 |
Leia também: Projeto Java MVC
Usando o método Java nextDouble()
O método java.util.Scanner.nextDouble() varre a entrada fornecida pelo usuário como um duplo. Se uma expressão regular flutuante for encontrada, o scanner avançará além da entrada correspondente.
A sintaxe para o método nextInt() é a seguinte:
public double nextDouble()

Esse método lança as três exceções a seguir:
- InputMismatchException – se o próximo token não corresponder à expressão regular flutuante ou se o próximo token estiver fora do intervalo.
- NoSuchElementException – Se a entrada estiver esgotada.
- IllegalStateException – Se o scanner estiver fechado.
Exemplo
O exemplo demonstra como o método java.util.Scanner.nextDouble() coleta várias entradas do usuário.
// Programa Java para escanear float usando Scanner importar java.util.Scanner; public class ScannerDoubleRegularExpression { public static void main(String[] args) { String new = “Bom dia! 3 + 3,0 = 6 verdadeiro”; // escreve um novo objeto scanner com o objeto String especificado Demonstração do scanner = novo(s) Scanner(es); // usa a localidade dos EUA para identificar duplas na string demo.useLocale(Locale.US); // pesquisa o próximo token duplo e imprime while (demo.hasNext()) { // se o próximo for um double, print found e a expressão regular float if (demo.hasNextDouble()) { System.out.println(“Encontrado:” + demo.nextDouble()); } // se uma expressão regular dupla não for encontrada, imprima “Not Found” e o token System.out.println(“Não encontrado:” + demo.next()); } // fecha o scanner scanner.fechar(); } } |
O programa acima resultará na seguinte saída:
Não encontrado: Bom Não encontrado: Bom dia! Encontrado: 3,0 Não encontrado: + Encontrado: 3,0 Não encontrado: = Encontrado: 6,0 Não encontrado: verdadeiro |
Conclusão
Por exemplo, os códigos fornecidos neste blog são o propósito e podem ser modificados de acordo com as necessidades de um indivíduo. Se você estiver interessado em aprender mais sobre Java e desenvolvimento de software full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, 9+ projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.
O que é a classe Scanner em Java?
A classe Scanner permite ler valores do teclado sem usar a entrada do console do Java. A entrada do console do Java é lenta, assim como seu redirecionamento. Scanner é mais rápido e conveniente, então Scanner deve ser usado no lugar da entrada do console do Java. O scanner usa o fluxo de entrada regular do Java, para que possa ser encadeado com outros analisadores. O scanner também é mais fácil de usar do que a entrada do console do Java. Scanner tem três subclasses principais, a saber, BufferedReader, InputStreamReader e FileReader. O mais geral é o BufferedReader. BufferedReader pode ler qualquer coisa que possa ser lida pelo InputStreamReader, e tem uma grande vantagem: buffer. O buffer pode conter uma linha por vez. Um fluxo de entrada não tem buffer: quando você chama next(), ele retorna o valor. Isso significa que você precisa coletar os valores antes de poder fazer qualquer coisa com eles. Scanner faz isso por você.
O que é um construtor de strings em Java?
Um construtor de strings é um novo tipo de classe para criar uma string. A classe do construtor de strings é introduzida em Java a partir da versão 1.3. Ele permite que você crie uma string concatenando várias strings e se redimensionará automaticamente conforme você adiciona mais strings a ela. Comparado à concatenação de strings, o uso do construtor de strings é mais rápido e flexível, embora seja menos legível. Objetos StringBuilder são objetos usados para criar valores String. Os objetos StringBuilder têm vários métodos.
O que é um InputStreamReader em Java?
InputStreamReader lê um fluxo de caracteres de um fluxo de entrada e os decodifica em uma codificação de caracteres especificada. Ele fornece uma maneira fácil de converter fluxos de caracteres de uma codificação para outra. InputStreamReader lê bytes do fluxo subjacente e os converte em caracteres usando a codificação de conjunto de caracteres especificada. É uma classe que é usada para converter dados de fluxo de bytes em dados de fluxo de caracteres. O fluxo de bytes representa dados binários e o fluxo de caracteres representa o texto.