Guardar entrada de dados numa variavel

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

tipo voce manda um dialog pro usuario pra ele digitar o q quiser?
se for

String s = JOptionPane.showInputDialog("digite");

por exemplo
dependendo da variavel vc tem q fazer casts

int i = Integer.parseInt(JOptionPane.showInputDialog("digite"));

http://java.sun.com/javase/6/docs/api/java/io/Console.html

Console c = System.console();

String s = c.readLine();

Nesse caso ele vai guardar oq o usario digitou na variavel “s”?
se for ,brigadao velho!!!

[quote=brunomp57]Nesse caso ele vai guardar oq o usario digitou na variavel “s”?
se for ,brigadao velho!!![/quote]
sim

Vlw rapaze ,vou testar quando chegar em casa!!

Eu faria assim…

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);
	}
}

Qual a diferença dos dois métodos (Scanner ou Console)??

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]

Concordo com vc !

Desculpe, não entendi isso…

O que vcs querem dizer “com não foi feito para ser usado com o System.in”?

[quote=Thiago MuiLoko]Desculpe, não entendi isso…

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;

Hummmmmmmm… tendi…

Vlw!

[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]

Cara, valeu pela aula…
Eu sempre usava Scanner.

E testando o código de novo aqui em casa encontrei um bug, ou algo parecido.

Console não funciona no Netbeans e outras IDEs, pois elas não tem console. Scanner funciona.

De volta à prancha de projetos.

É 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();

	System.out.println("Digite sua idade");
	idade = Integer.parseInt(cs.readLine());

	System.out.println(nome + "\n" + idade);
}

}[/code]

Ontem eu fiquei tentando mudar o exemplo de Scanner para Console no Eclipse, e realmente não funciona…
Agora que eu voltei pro prompt ele ta rodando…