You are on page 1of 2

class Convertir {

String cad;
int ind;
static int cad1[];
public Convertir(String cad,int ind)
{
this.cad=cad;
this.ind=ind;
if(ind>0)
cad1=Cesar(cad,ind);
}
private int [] Cesar (String cad,int ind)
{
int x=cad.length();
int cadInt[]=new int [x];
for(int i=0;i<x;i++)
{
int aux=cad.codePointAt(i);
if(aux<65||(aux>90 && aux<97)||aux>122)
{
cadInt[i]=aux;
}
if(aux==241)
{
cadInt[i]=110+ind;
if (cadInt[i]>122) cadInt[i]=(cadInt[i]%122)+96;
}
if(aux>=65 && aux<=90 || aux==209)
{
//Convertimos el cdigo ascii a un
cadInt[i]=numerico(aux);
//nmero entre 1 y 54 para hacer la
cadInt[i]+=ind;
//rotacion ms facil con la ee
if (cadInt[i]>27) cadInt[i]=cadInt[i]%27; //Luego de rotar se
cadInt[i]=letra(cadInt[i]);
//cambia a ascii otra vez
}
if(aux>=97 && aux<=122 || aux==241)
{
cadInt[i]=numerico(aux);
cadInt[i]+=ind;
if (cadInt[i]>54) cadInt[i]=27+(cadInt[i]%54);
cadInt[i]=letra(cadInt[i]);
}
}
return cadInt;
}
public int numerico (int ind)
{
int x=ind;
if(ind>=65 && ind<=90)
{
x=ind%64;
if(ind>78) x++;
}
if(ind==209) x=15;
if(ind>=97 && ind<=122)
{
x=27+(ind%96);
if(ind>110) x++;
}

//Convertimos el digito ascii a otro entre


//1 y 54 para incluir la ee
//Mayusculas a partir de 0
//Minusculas a partir de 28

if(ind==241) x=42;
return x;
}
public int letra (int ind) //Devolvemos el valor ascci del dgito luego
{
//de hacer la rotacion, incluyendo la ee
int x=ind;
if(ind>=1 && ind<=27)
{
x=64+ind;
if(ind>14) x--;
}
if(ind==15) x=209;
if(ind>=28 && ind<=54)
{
x=97+(ind%28);
if(ind>42) x--;
}
if(ind==42) x=241;
return x;
}
public int lista (int ind)
{
int x=0;
if(ind>=65 && ind<=90)
{
x=ind%64;
if(ind>78) x++;
}
if(ind==209) x=15;
if(ind>=97 && ind<=122)
{
x=ind%96;
if(ind>110) x++;
}
if(ind==241) x=15;
return x;
}
}

//Convierte la letra en su equivalente


//numerico empezando en 1 para mayusculas
//minusculas e incluyendo la
//de 1 a 27

You might also like