Problema em converter ASCII para String

6 respostas
L

Olá a todos, estou com problemas em java,
como faço para converter ASCII para String?
Eu tenho um ArrayList que recebe valores inteiros, e tenho um pequeno codigo que faz a conversao Ascii para String, o problema é como interligar os dois
ex:

ArrayList<BigInteger> lista = new ArrayList<BigInteger>();

	for (int i=49; i < 91; i++){

           if(lista==i){ //HA INCOMPATIBILIDADE, MAS COMO FAZER DA FORMA CORRECTA
	 	   	 	   		
	 	   	byte[] bytes = new byte[i];
			bytes [0] = (byte) i;
			 
			String letra = new String(bytes); 
			System.out.print(""+letra);
                      }
				}

Eu queria mesmo era converter todos os valores do arraylist em String, tipo 65 do Arraylist= String “A”, nao sei se me fiz entender
Agradeço por toda ajuda possivel

6 Respostas

maschiojv

troque

String letra = new String(bytes);

por

char letra = (char) i;
maschiojv

Nossa! :shock:

agora que eu olhei com mais atenção o teu código que eu vi que não tem a menor noção o que vc esta tentando fazer, comparar um ArrayList com o int (???)

e essa lista, ele vem de algum lugar neh? ouvc cria ela ali e espera que os números já estejam ali por mágica? :roll:

vc nem ao menos está iterando a lista, como vc vai pegar os valores dela?

bem, de qualquer forma o código para o que eu acho que vc ta tentando fazer é o seguinte:
//suponto que aqui a lista já está criada e preenchida
		
		//esse sb vai guardar a string final que vc quer criar
		StringBuilder sb = new StringBuilder();
		
		//iterando a lista para pegar os valores dela
		for (BigInteger ascii : lista) {
	        
			//para converter ascii em java basta dar um cast para char
			sb.append((char) ascii.intValue());
		}
		
		System.out.println(sb);
L

Vou tentar entender

L

Desculpe a minha ignorancia, vou expor o que realmente qu quero fazer e xtou a travar, nao sou muito bom em java e tnho pouco tempo para entregar o programa na faculdade.
é o seguinte, tenho uma classe aonde eu digito uma mensagem ex: paz e ele pega todos os valores ascii de cada letra, faz uns calculos e grava no array lista como mostra o codigo.

for (int i = 0; i < txt.length(); i++) {  
             int chr = txt.charAt(i);
               
		   BigInteger a = BigInteger.valueOf (chr);  
 		   BigInteger b = BigInteger.valueOf (7);  
 		   BigInteger c = BigInteger.valueOf (391);  
	 	   BigInteger d = a.modPow (b, c); 	
                     	
           ArrayList<BigInteger> lista = new ArrayList<BigInteger>();
           lista.add(d);
     
           System.out.print(lista+"\t"); //ALEM DE IMPRIMIR ESSA LISTA, QUERO ENVIAR PARA A SEGUNDA CLASSE (EM OUTRA JANELA) A LISTA COMPLETA
}

ja na segunda classe, quero receber o ArrayList completo

int F=176; //onde tem F, eu quero receber cada valor do meu ArrayList
           BigInteger a = BigInteger.valueOf (F);  
 		   BigInteger b = BigInteger.valueOf (151);  
 		   BigInteger c = BigInteger.valueOf (391);  
	 	   BigInteger d = a.modPow (b, c); 
	 	   System.out.println(d); 
	 	   	
	 	   	
	 	   ArrayList<BigInteger> lista = new ArrayList<BigInteger>();
           lista.add(d);
 System.out.print(lista+"\t");

No final em vez de imprimir o ArrayList eu quero converter cada numero (int) que contem o arraylist em String
os numeros que irao estar no arraylist, na tabela ascii correspondem a uma String, eu quero imprimir essa String, nao sei se me fiz entender,
desde ja agradeço a ajuda de todos, comentarios dicas e se estiver escrevendo besteira me avisem e me corrijam por favor

maschiojv

Blz, era o que eu achei q vc queria fazer.

voltando ao código que eu passei, quando eu escrevi “suponto que aqui a lista já está criada e preenchida” se refere à primeira classe que faz os calculos.

na segunda classe vc faz aquilo que eu passei anteriormente, itera a lista e adiciona caractere a caractere no StringBuilder, depois, com o StringBuiledr vc faz sb.toString() e tem a string que vc queria.

L

Vou tentar fazer isso que me disseste, se eu tiver problemas vou postar de novo,
obrigado por tudo.

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