Lendo Entrada com Scanner
Leia a entrada do usuário de System.in
Lendo Entrada com Scanner é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
Lendo a partir do teclado
Para ler o que um usuário digita, Java fornece a classe Scanner no pacote java.util. Você a conecta a System.in, o fluxo de entrada padrão.
Scanner torna simples a leitura de palavras, linhas e números.
Criando um Scanner
Crie um Scanner passando System.in. Os exemplos aqui usam cadeias fixas para serem executados sem entrada, mas os mesmos métodos se aplicam à entrada do teclado.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("Hello");
String word = scanner.next();
System.out.println(word);
scanner.close();
}
}Lendo uma única palavra
next() lê um elemento, ou seja, o texto até o próximo espaço em branco. Espaços e quebras de linha separam os elementos.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("apple banana cherry");
System.out.println(scanner.next());
System.out.println(scanner.next());
scanner.close();
}
}Lendo uma linha completa
nextLine() lê tudo até o fim da linha, incluindo os espaços. Use-o quando a entrada contiver várias palavras que você queira manter juntas.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("John Smith");
String fullName = scanner.nextLine();
System.out.println("Name: " + fullName);
scanner.close();
}
}Verificando se há mais entrada
hasNext() retorna verdadeiro enquanto houver mais elementos. Isso permite repetir o processamento até que a entrada se esgote.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("red green blue");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
}
}Lendo linha por linha
Associe hasNextLine() a nextLine() para processar uma entrada com várias linhas, uma linha de cada vez.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("line one\nline two\nline three");
while (scanner.hasNextLine()) {
System.out.println("> " + scanner.nextLine());
}
scanner.close();
}
}Um exemplo real com o teclado
Para obter uma entrada real do usuário, você escreveria as linhas abaixo. Teste-as localmente: o programa espera em nextLine até que você digite e pressione a tecla de confirmação.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name);
scanner.close();
}
}Fechando o Scanner
Chamar close() libera o recurso. Uma abordagem mais limpa é usar o gerenciamento automático de recursos, que fecha o scanner automaticamente quando o bloco termina.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (Scanner scanner = new Scanner("data here")) {
System.out.println(scanner.next());
}
}
}next versus nextLine
Lembre-se da diferença principal: next() para no espaço em branco e retorna um elemento, enquanto nextLine() obtém o restante da linha atual.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("first second third");
System.out.println(scanner.next());
System.out.println(scanner.nextLine());
scanner.close();
}
}Delimitadores personalizados
Você pode alterar o que separa os elementos com useDelimiter. Aqui, uma vírgula separa os valores em vez do espaço em branco.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("a,b,c");
scanner.useDelimiter(",");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
}
}Noções essenciais de Scanner
Crie um Scanner em System.in, use next para palavras e nextLine para linhas inteiras, repita com a família hasNext e sempre feche-o.
Verificação rápida
Teste seus conhecimentos básicos sobre Scanner.
Revisão
Você aprendeu a ler a entrada com Scanner:
- Crie-o com
new Scanner(System.in) next()lê uma palavra;nextLine()lê uma linha inteira- Repita com
hasNext()ouhasNextLine() - Feche-o com
close()ou usando o gerenciamento automático de recursos useDelimiteraltera o separador de elementos
Perguntas Frequentes
A aula “Lendo Entrada com Scanner” é grátis?
Sim — o texto completo de “Lendo Entrada com Scanner” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “Lendo Entrada com Scanner”?
Leia a entrada do usuário de System.in Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Lendo Entrada com Scanner”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Lendo Entrada com Scanner
- Lendo Números e Linhas
- Validando a Entrada do Usuário
- Alternativa BufferedReader