Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Carregando comentários...