[Resolvido] Usando / e % (Div e Mod)

10 respostas
M

Estou precisando de ajuda, estou querendo receber 5 números de um usuário e dividi-los ex:
Usuário digitou= 12345
quero dividi-los em 5 variáveis abcde:
a = 1
b = 2
c = 3
d = 4
e = 5
e caso ele digite menos ou mais que 5 números apresente erro.

Vlw

10 Respostas

E

Quer q o número divida por estes 5 numeros pra ter soh um resultado ou quer q ele divida separadamente por cada um deles pa obter resultados diferentes?

Rodrigo_Sasaki

Você pretende realizar operações matemáticas com essas variáveis?

Porque seria muito mais fácil você fazer isso com String.

Agora com uma operação matemática, pra você pegar o 5, você pode fazer (12345 % 10). Aí o resto fica fácil adaptar.

M

Vlw deu certo aqui, fui adaptando usando o % e / conseguindo fazer o q eu queria.

Obrigado pela força

Rodrigo_Sasaki

Poste o que você fez :slight_smile:

É bom postar as resoluções nos tópicos também, pra algumas pessoas pode parecer um problema simples, mas pra outras pode ser que esse tópico dê uma luz algum dia.

E se suas dúvidas foram sanadas, edite, por favor, o seu primeiro post desse tópico, e adicione a tag [RESOLVIDO] ao Assunto.

Abraço! :slight_smile:

M

Eu ainda preciso achar a lógica para exibir mensagem de erro caso o usuário digite menos ou mais que 5 digitos.

Como eu poderia fazer isso?

Rodrigo_Sasaki

Bom, pode ser que haja uma operação que consiga te dizer isso, mas não consigo pensar em uma segura, talvez alguém aí tenha uma idéia. Eu gostaria de ver também, mas o que você pode fazer é transformar seu numero em String e perguntar pelo tamanho, assim: Integer.toString(12345).length();

rodrigo.ferreira

Oi, boa tarde.

Isto que você quer fazer está parecendo meio estranho… o que exatamente você deseja fazer?

Se os dados que o usuário digitou vierem na forma de String, basta fazer:

if ( numeros.length() != 5 ) {
  throw new IllegalArgumentException("Informe exatamente 5 números");
}

Abraço,

M

Então o q eu realmente preciso fazer.
O usuário vai digitar exatamente 5 numeros (int), quero que caso ele não tenha digitado 5 digitos exiba uma mensagem de erro.
A divisão dos números eu consegui usando o / e %.

System.out.println("Digite 5 números: ");
   int num = input.nextInt();
   
   int a = num/10000;
   int b = num%10000/1000;
   int c = num%1000/100;
   int d = num%100/10;
   int e = num%10;
   System.out.printf("A = %d \nB = %d \nC = %d \nD = %d \nE = %d\n" , a , b , c , d , e);
F

Por que ao invés de nextInt() vc não usa o next() e pega a String inteira?

Algo do tipo:

String numeros = input.next()
int a = Integer.parseInt(numeros.substring(0,1));
int b = Integer.parseInt(numeros.substring(1,2));
. . .
if (numeros.lenght() != 5) {
  //ERRO
}

Acho que fica bem mais fácil.

EDIT: Você ainda pode limitar a entrada de digitos. Uma maneira é esta, ao invés de usar input.next():

String numeros = input.nextLine().replaceAll("[^0-9]", "")

Desta maneira, caso o usuário digite: 1"!@#$%¨&*()+{}2 3á
numeros será = “123” :smiley:

M

Vlw vou tentar aqui.

Muito obrigado ^^.

Criado 14 de junho de 2012
Ultima resposta 15 de jun. de 2012
Respostas 10
Participantes 5