Classe String e reverse()

3 respostas
G

Pessoal o metodo reverse() da minha classe não esta funcionado!!! Eu pesquisei no google e ta praticamente igual ao meu codigo. Alguem poderia dizer se esta faltando algo no codigo ou é pau do java. O que eu quero fazer é isso
String 0101
N_String 1010
o resultado ta dando o 0101 e não 1010

O pedaço do codigo é esse:

public static void DecToBin(int num){
		int quo,res,div,i=0;
		String bina ="";
		div=num;
		
		while(div!=0){
			quo=div/2;
			res=div%2;
			bina=""+res;
			String troca = new StringBuffer(bina).reverse().toString();
			System.out.print(troca);
			div=quo;
			i++;
		}
				
	}

Eu so usei na classe o import do swing…
grato pela ajuda.

3 Respostas

C

soh uma parte que esta errada neste codigo: bina=""+res. Porque, assim ele soh pega o novo numero de um digito. Ou seja, ele nao pega o numero anterior. Entao o correto eh bina= bina+res;

S

Oi Gollun, o problem não o metodo reverse e sim a logica usada dentro do while.

deixe seu while assim:
while(div!=0){
         quo=div/2;
         res=div%2;
         bina+=res;
         div=quo;
         i++;
      }

       String troca = new StringBuffer(bina).reverse().toString();
       System.out.print(troca);
Se quizer deixar seu codigo mais simples, pode fazer assim também:
public static void decToBin(int num) {
		int div = num;
		StringBuffer bina = new StringBuffer();

		while(div != 0) {
			bina.append(div % 2);
			div /= 2;
		}

		System.out.print(bina.reverse().toString());
	}

Falow

G

Galera, valeu eu to fazendo estas duas dicas… para ver qual fica melhor… :grin:

Criado 1 de maio de 2007
Ultima resposta 1 de mai. de 2007
Respostas 3
Participantes 3