Kradin 0 Denunciar post Postado Janeiro 25, 2010 Fiz uma classe onde você insere uma menssagem e ele devolve um sequencia de numeros que você pode usar na mesma classe para descobrir o que ela significa. Queria a opinião de vocês, se está bom, ruim, melhorias, etc.. public class Cod { public String text_cod; private String key[][]; private static final String characters[] = {"A","B","C","D","E", "F","G","H","I","J", "K","L","M","N","O", "P","Q","R","S","T", "U","V","X","W","Y","Z", " ",".","-","!","?",",","Ô","Í", "É","Á","Ã","\"","Ç","Ê","(",")",":","\n"}; public Cod(){ text_cod = ""; CreateKey(0); } public Cod(int num){ text_cod = ""; CreateKey(num); } public String NumKey(){ return (key[1].length + "" + key.length); } public void codificar(String charc){ int point=1; text_cod = NumKey(); try { while((charc.substring(point-1,point)) != null){ if(Character.isDigit(charc.charAt(point-1))){ text_cod = text_cod + "99" + (charc.substring(point-1, point)); }else{ text_cod = text_cod + searchChar((charc.substring(point-1, point))); } point++; } } catch (Exception e) {} } public void decodificar(String charc){ int point=3; String decod = ""; CreateKey(Integer.parseInt(charc.substring(0, 2))); try { while((charc.substring(point-1, point+1)) != null){ int number = Integer.parseInt(charc.substring(point-1, point+1)); if(number == 99){ decod = decod + charc.substring(point+1, point+2); point += 1; }else{ int f = number/10; int s = number-f*10; decod = decod + key[f][s]; } point += 2; } } catch (Exception e) {} text_cod = decod; } private String searchChar(String ch){ int fx,fy; for(fx = 0; fx < key.length; fx++){ for(fy = 0; fy < key[fx].length; fy++){ String t = key[fx][fy]; if(key[fx][fy].compareToIgnoreCase(ch) == 0){ return fx+""+fy; } } } return null; } private int[] Cordenat(int num){ int y = num/10; int x = num-y*10; if((x*y < characters.length) || (num > 99)){ return Cordenat(11 + (int)(Math.random() * 88)); } int cord[] = {x,y}; return cord; } private void CreateKey(int num){ int table[] = Cordenat(num); int x = table[0]; int y = table[1]; String key2[][] = new String[x][y]; int fx,fy,cont = 0; for(fx = 0; fx < x; fx++){ for(fy = 0; fy < y; fy++){ if(cont < characters.length){ key2[fx][fy] = characters[cont]; cont++; }else{ break; } } } key = key2; } } http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif Compartilhar este post Link para o post Compartilhar em outros sites