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

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

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.