GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Separando os dígito em um inteiro


#1

Olá, pessoal!

Sou iniciante da java.

estou pequisando, não consegui encontrar um comando para fazer programar... aqui o livro java como programar 8 edição pag 54 e cap 2.30 diz o exercício

escreva o aplicativo que insere um número consistindo em cinco digito do usúario, separa o número em seus dígito inviduais e imprime os dígitos separando uns outros por três espaços cada. por exemplo, se usuário digitar o número 42399 e imprime na tela 4 2 3 9 9.

Aguardo a suas responda..

obrigado!!


#2

Faz alguns teste com relaçao a operaçoes matematicas, tipo assim

Numero 42359 / 10000 = 4 parte inteira
resto 0.2359*10000 = 2359
Resto 2359 / 1000 = 2 parte inteira
resto 0.359*1000 = 359
. . . . . . .

E assim sucessivamente

Vc pode armazenar em um vetor de 5(a conta vc faz em uma variavel a parte) e depois imprime o vetor com espaçoes entre os elementos


#3

int numero = 3489723;
// converte o int em String e cria um array de chars com base na String
char[] digitos = String.valueOf( numero ).toCharArray();
// mostra cada char
for ( char d : digitos ) {
    System.out.print( d + " " );
}

[]´s


#4

se voce preferir usar a API,fica bem simples...
vc vai pegar esse valor e transformar para string, depois q transformar, a classe string tem um meotod que forma um array de char.
pronto, agora é só vc fazer um FOR com o tamanho desse array, e na escrita vc colocar o vetor na possição e colocar os espaços dentro das aspas....
entendeu??? gastei apenas 4 linhas ´para fazer isso.

vlw


#5

obrigado pessoal!

agora já consegui a executar a programa..

valeu!!!


#6

Olá jsnpereira sei que é uma resposta meio atrasada, mas como ninguém respondeu o exercício para você de acordo com o (grau) do capítulo, eu cheguei neste exercício agora e consegui resolvê-lo segue abaixo a resolução do exercício, espero que intenda, eu sinceramente ainda vou buscar ajuda para entender o porque de a cada operador '%' retornar o último inteiro e depois o operador '/' retornar todo o inteiro (- 1 casa), não entendi muito bem nem oque eu mesmo fiz a [color=red]00:20 :shock:[/color]

/*
 * programa que dado um inteiro de 5 numeros pelo usuário,
 * ele separa cada numero com 3 espaços ->(sem a utilização de arrays)
 */
import java.util.Scanner;
public class Exercicio12Cap2 {//início classe Exercicio12Cap2
    public static void main(String[] args) {//início método principal main
        Scanner entrada = new Scanner(System.in);
        int valorUsuario,//obtém valor através do usuário
            quinto,//obtém o 5° numero da entrada
            quarto,//obtém o 4° numero da entrada
            terceiro,//obtém o 3° numero da entrada
            segundo,//obtém o 2° numero da entrada
            primeiro;//obtém o 1° numero da entrada
        System.out.print("Entre com um valor de 5 casas (inteiro): ");
        valorUsuario = entrada.nextInt();
        quinto = valorUsuario % 10;//se fosse 12345 retornaria 5
        valorUsuario /= 10;//agora se fosse ainda 12345 valorUsuario obtém 1234 e assim por diante até que seja (valorUsuario obtém 1 da divisão)
        quarto = valorUsuario % 10;
        valorUsuario /= 10;
        terceiro = valorUsuario % 10;
        valorUsuario /= 10;
        segundo = valorUsuario % 10;
        valorUsuario /= 10;
        primeiro = valorUsuario % 10;
        System.out.printf("%d   %d   %d   %d   %d\n",primeiro, segundo, terceiro, quarto, quinto);
    }//fim método principal main
}//fim classe Exercicio12Cap2

#7

public class Java
{
public static void main( String[] args )
{
Scanner input = new Scanner( System.in );

	int valor;
	int resultado1;
	int resto1;
	int resultado2;
	int resto2;
	int resultado3;
	int resto3;
	int resultado4;
	int resto4;
	int resultado5;

	System.out.print( " Insira 5 digitos inteiros: " );
	valor = input.nextInt();

	resultado1 = valor / 10000;
	resto1 = valor % 10000;

	resultado2 = resto1 / 1000;
	resto2 = resto1 % 1000;

	resultado3 = resto2 / 100;
	resto3 = resto2 % 100;

	resultado4 = resto3 / 10;
	resto4 = resto3 % 10;

	resultado5 = resto4;

	System.out.printf( "%d, %d, %d, %d e %d", resultado1, resultado2, resultado3, resultado4, resultado5 );
}

}


#8

Boa OneSr,

A galera + Sênior sugeriu soluções mais avançadas e você a mais adequada ao nivel desta dúvida que eu também estava!

Obrigado.


#9

/**
* Programa irá ler um número inteiro de 5 digítos e
* Imprimirá esse valor separado por 3 caracteres de espaço
* entre cada elemento desse número
* @author luiz
*
*/

import java.util.Scanner;
public class ExercicioDeitel_230 {

public static void main(String[] args) {

	System.out.print("Digite um número de 5 digitos: ");

	int num1 = new Scanner(System.in).nextInt();

	int resto1 = num1%10000;
	int resto2 = num1%1000;
	int resto3 = num1%100;
	int resto4 = num1%10;

	int digito1 = num1/10000;
	int digito2 = resto1/1000;
	int digito3 = resto2/100;
	int digito4 = resto3/10;
	int digito5 = resto4;

	System.out.println(digito1 + "   " + digito2 + "   "+ digito3 + "   "+ digito4 + "   " + digito5);


}// main

}// class


#10