CodeGym/Blogue Java/Random-PT/Método nextLine() do scanner em Java
John Squirrels
Nível 41
San Francisco

Método nextLine() do scanner em Java

Publicado no grupo Random-PT
Scanner , uma classe na linguagem de programação Java que pode analisar tipos primitivos e strings usando expressões regulares. O método de scanner nextLine() em Java move esse scanner além da linha atual e retorna a entrada ignorada. Mais sobre nextLine() e Scanner posteriormente neste artigo.

Resumidamente sobre a classe Scanner e como ela funciona

Grosso modo, a classe java.util.Scanner permite ler entradas de várias fontes, incluindo o console. Realmente se parece com um scanner clássico. Este dispositivo de hardware possui uma arquitetura complicada, mas é bastante simples descrever seu funcionamento. O scanner lê uma data que um usuário coloca nele, como papéis, e mantém os dados na memória como uma imagem ou arquivo PDF. O scanner Java, assim como um scanner real, lê dados da fonte que você especifica para ele. Por exemplo, de uma string, de um arquivo, de um console. Em seguida, ele reconhece essas informações e as processa conforme necessário. Por exemplo, o programa pede para inserir alguns dados do console e os lê ou deseja lê-los de um arquivo. Para esta operação, o scanner possui vários métodos combinados com a palavra “próximo”. Como next() , nextLine() , nextInt() , nextDouble() .

método nextLine()

Como dissemos acima, o objeto do scanner divide a entrada em tokens usando o padrão delimitador, espaço em branco por padrão, mas pode ser substituído por uma string ( java.lang.String ) ou uma expressão regular ( java.util.regex. Padrão ). Os tokens resultantes podem então ser convertidos em valores de vários tipos usando vários métodos next. O método nextLine() do scanner em Java avança esse scanner além da linha atual e retorna a entrada que foi ignorada. General next() encontra e retorna o próximo token completo deste scanner. O método nextLine() continua pesquisando a entrada em busca de um separador de linha, portanto, pode armazenar em buffer todas as entradas procurando uma linha para pular se não houver separadores de linha. Este método lança as próximas exceções:
  • NoSuchElementException: lança se nenhuma linha for encontrada
  • IllegalStateException: lançado se este scanner estiver fechado

exemplo nextLine()

Digamos que queremos que o usuário insira qualquer palavra ou frase no console e possamos mostrar a ele qual palavra ou frase ele inseriu.
import java.util.Scanner;
//…scanner.nextLine() example
public class ScannerTest {
   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any phrase and I'll repeat it!... ");
      //here we are reading the next line:
       String sentence = scan.nextLine();
       System.out.println(sentence);
   }
}
A saída pode ser, por exemplo, a seguinte:
Digite qualquer frase e eu repetirei!... aqui está minha frase aqui está minha frase
Se você usar o método next() em vez de nextLine() , obterá apenas a primeira palavra da sua frase.
Digite qualquer frase e eu repito!... aqui está minha frase aqui
Vamos dar um exemplo de um método nextLine() de scanner funcional para ler um arquivo. Para este exemplo, criei um arquivo txt myTest.txt. Existem duas linhas nesse arquivo:
meu arquivo de teste e minha próxima linha estão aqui
Aqui está um programa que lê duas linhas de um arquivo.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {

   public static void main(String[] args) throws FileNotFoundException {
       Scanner scanner = new Scanner(new File("d://myTest.txt"));

       String textFromFile1 = scanner.nextLine();
       String textFromFile2 = scanner.nextLine();
       System.out.println(textFromFile1);
       System.out.println(textFromFile2);
       scanner.close();

   }
}
A saída é:
meu arquivo de teste e minha próxima linha estão aqui
Se o seu caminho para o arquivo estiver errado ou o arquivo com esse nome não existir, você obterá a próxima saída:
Exceção no thread "principal" java.io.FileNotFoundException: d:\myTest.txt em java.base/java.io.FileInputStream.open0(Método Nativo) em java.base/java.io.FileInputStream.open(FileInputStream.java :213) em java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) em java.base/java.util.Scanner.<init>(Scanner.java:639) em ScannerTest.main( ScannerTest.java:8)
Se o programa encontrou seu arquivo, mas ele está vazio, você receberá NoSuchElementException:
Exceção no thread "main" java.util.NoSuchElementException: Nenhuma linha encontrada em java.base/java.util.Scanner.nextLine(Scanner.java:1651) em ScannerTest.main(ScannerTest.java:10)
Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário