Fala ae galera, sou novo aki no forum e tb sou novo no java gostaria de tirar uma duvida cruel.
como q eu faço pra capturar um dado do teclado e guardar numa variavel?
na linguagem c eu sei q eh assim:scanf("%tipodavariavel",&variavel).
E em java como eu fço isso?
Desde ja muito obrigado ae galera
import java.util.Scanner;
public class Teste {
public static void main(String args []) {
Scanner sc = new Scanner(System.in);
String nome;
int idade;
System.out.println("Digite seu nome");
nome = sc.nextLine();
System.out.println("Digite sua idade");
idade = sc.nextInt();
System.out.println(nome + "\n" + idade);
}
}
Scanner é uma classe que serve para processamento em linha de InputStreams.
Console é uma classe específica para leitura de entradas via console/prompt de comandos, até facilita escrever algo como "Digite o teu nome aqui: " seguido da entrada. Outro extra é a leitura de senhas, já camufladas.
Para mim o maior ganho é não cair na besteira de ficar usando o Scanner.nextInt(), que não foi feito para ser usado com o System.in.
[quote=Bruno Laturner]Scanner é uma classe que serve para processamento em linha de InputStreams.
Console é uma classe específica para leitura de entradas via console/prompt de comandos, até facilita escrever algo como "Digite o teu nome aqui: " seguido da entrada. Outro extra é a leitura de senhas, já camufladas.
Para mim o maior ganho é não cair na besteira de ficar usando o Scanner.nextInt(), que não foi feito para ser usado com o System.in.[/quote]
O que vcs querem dizer “com não foi feito para ser usado com o System.in”?[/quote]
Rode isto:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String[] nomes = new String[10];
int[] idades = new int[10];
for (int i = 0; i < 10; i++)
{
System.out.print("Nome: ");
nomes[i] = in.nextLine();
System.out.print("Idade: ");
idades[i] = in.nextInt();
}
}
}
As entradas do nextInt vazam para o próximo nextLine
Explicando, o nextInt lê a entrada a procura de números inteiros, e ele para quando lê um outro caracter.
O nextLine lê a entrada até encontrar uma terminação de linha. No Windows a terminação de linha é feira com carriage return, line feed, em java “\r\n”.
O nextInt vai ler os números e ler o \r e o \n vai sobrar. O \n também é considerado um caracter de terminação de linha (é usado em sistemas unix), e o nextLine vai comer ele.
Ai a entrada vai parar no próximo nextInt.
O método de fazer o nextInt funcionar corretamente com o System.in é usar somente o nextLine, pegar a String e convertê-la para int com Integer.parseInt;
[quote=Bruno Laturner]Scanner é uma classe que serve para processamento em linha de InputStreams.
Console é uma classe específica para leitura de entradas via console/prompt de comandos, até facilita escrever algo como "Digite o teu nome aqui: " seguido da entrada. Outro extra é a leitura de senhas, já camufladas.
Para mim o maior ganho é não cair na besteira de ficar usando o Scanner.nextInt(), que não foi feito para ser usado com o System.in.[/quote]
[quote=Bruno Laturner]Explicando, o nextInt lê a entrada a procura de números inteiros, e ele para quando lê um outro caracter.
O nextLine lê a entrada até encontrar uma terminação de linha. No Windows a terminação de linha é feira com carriage return, line feed, em java “\r\n”.
O nextInt vai ler os números e ler o \r e o \n vai sobrar. O \n também é considerado um caracter de terminação de linha (é usado em sistemas unix), e o nextLine vai comer ele.
Ai a entrada vai parar no próximo nextInt.
O método de fazer o nextInt funcionar corretamente com o System.in é usar somente o nextLine, pegar a String e convertê-la para int com Integer.parseInt;[/quote]
É esse código aqui não Funcionou no Eclipse nem no NotePad++. Mas no prompt ele roda…
[code]public class TesteConsole {
public static void main(String args[]) {
Console cs = System.console();
String nome;
int idade;
System.out.println(“Digite seu nome”);
nome = cs.readLine();