O Guto deu a dica certa.
A classe é bem poderosa, e pode ler dados de várias fontes, inclusive
de arquivos e da rede.
Mas para fins desse exercício, basta usar os métodos nextInt(),
nextFloat() ou nextDouble(), nextLine()
Pode-se escrever apenas um valor por linha, ou vários.
Por exemplo:
Scanner sc = new Scanner(System.in) ; // associa o scanner apontado
por sc ao teclado
System.out.println ("Digite sua idade, seu salário e seu nome: ");
// você aqui pode digitar um int numa linha, um double na outra, e uma
string na terceira, ou os três na mesma linha
int idade = sc.nextInt(); // lê um int e avança até o início do
próximo valor
double salario = sc.nextDouble(); // lê um double e avança até o
início do próximo valor
String nome = sc.nextLine(); // lê tudo até o fim da linha corrente.
O problema com nextLine() é que brancos antes e depois são
considerados caracteres da string, ao contrário do que ocorre com os
numeros.
Assim, se sua linha digitada for: 21 980,50 Carlos da Silva
idade receberá 21, salário receberá 980.50, mas o nome receberá "
Carlos da Silva", com brancos à esquerda.
Por isso é melhor ler um dado por linha, especialmente se for string.
Mais um detalhe: Java trabalha com o conceito de "locale", palavra
usada para representar locais diferentes do mundo que usam convenções
diferentes para representar números, dinheiro , datas, etc.
A classe Scanner é sensível ao local, e detecta do sistema operacional
que usamos aqui vírgula decimal, e não o ponto.
Assim, um real lido com um scanner deve ter a vírgula decimal para
funcionar com nextFloat() ou nextDouble(). Se colocar ponto decimal
vai dar um erro.
Vocês notarão que, depois de ler o salário, no exemplo acima, com
vírgula, se forem imprimir na tela sairá 980.50
Coisas do Java....Para mudar isso será preciso usar formatos, que não
vimos ainda.
A melhor maneira de eliminar os brancos à esquerda e à direita de uma
String é usar o método trim() da classe String, que retorna uma cópia
da String que recebe essa mensagem, sem os brancos iniciais e finais:
String s = " abcd ".trim();
Nesse caso s vai apontar para a string "abcd"
abs,
Jonathan
On 7 abr, 13:06, Romulo Freires <[email protected]> wrote:
> Obrigado Guto, ficou fácil depois da explicação.
--
You received this message because you are subscribed to the Google Groups "Comp
2 - Geral" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/comp2-geral?hl=en.