Inverso [RESOLVIDO]

8 respostas
V

Pessoal o código que vou postar é para String como eu faria usando a mesma lógica para Inteiro???

String aux ;

		aux = JOptionPane.showInputDialog("Digite:");

		if (aux == null){

		JOptionPane.showMessageDialog(null, "CANCELOU!!!");

		}

		else{

		

		for (int i=aux.length() - 1; i >= 0 ; i--){

		System.out.print(aux.charAt(i));

		}

8 Respostas

ViniGodoy

Você tem algumas alternativas:

a. Converter para String;
b. Usar os operadores de % e / numa variável para extraír o último número, e o operador de * para inseri-lo em outra variável.

V

Mas ai que ta esse código já é uma string… e ele imprime um valor inverso do que foi digitado eu quero que ele leia um inteiro e faça o msmo processo…

ViniGodoy

Então use a opção b.

V

Eu faço assim... converto oq escrevi em Int... dai no for ali que eu faço o tratamento com os operadores ??

String aux ;  
		
		int n;
		  
        aux = JOptionPane.showInputDialog("Digite:");   
        
        n = Integer.parseInt(aux);
  
        if (aux == null){   
  
        JOptionPane.showMessageDialog(null, "CANCELOU!!!");   
  
        }   
  
        else{   
  
        for (int i=aux.length() - 1; i >= 0 ; i--){   
  
        System.out.print(aux.charAt(i));   
  
        }
ViniGodoy

Bom, pense um pouco…

O que acontece quando usa o operador % com o valor 10 num número?

1234 % 10 = 4

E o que acontece quando você divide um número por 10, numa divisão inteira?

1234 / 10 = 123

E o que acontece quando vc multiplica um número por 10?

4 * 10 = 40

Agora é só pensar num for que inverta o número… se não conseguir, posto aqui a solução.

V

Alguma coisa já entendi e fiz... o ultimo numero consegui extrair veja ai oq eu fiz ...

String aux ;  
		
		int n,n1,n2;
		  
        aux = JOptionPane.showInputDialog("Digite:");   
        
        n = Integer.parseInt(aux);
  
        if (aux == null){   
  
        JOptionPane.showMessageDialog(null, "CANCELOU!!!");   
  
        }   
  
        else{   
        for (int i=aux.length() - 1; i >= 0 ; i--){     
        	
         n1 = n%10;
         n2 = n1*10;
         System.out.print(n2);  
        }
ViniGodoy

Tente rodar o programa abaixo numa execução passo a passo e ver funcionando.

String aux = JOptionPane.showInputDialog("Digite:");           
if (aux == null){   
   JOptionPane.showMessageDialog(null, "CANCELOU!!!");   
   return;  
}   

int n = Integer.parseInt(aux);  

int naux = n;
int invertido = 0;
while (naux > 0) {
  int ultDigito = nAux % 10;
  invertido = invertido * 10 + ultDigito;
  naux = naux / 10;
}

System.out.println("Número: " + n + " Invertido: " + invertido);
V

Muito obrigado vou análisar o código agora e tentar fazer com o meu… brigadão msmo…

Criado 6 de outubro de 2009
Ultima resposta 7 de out. de 2009
Respostas 8
Participantes 2