Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/10/2009, 09:16
Avatar de Fuzzylog
Fuzzylog
 
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Encripta Strings

Este es un ejemplo que encontré por ahí y que modifiqué para hacerlo funcionar. Si quieres un encriptador distinto te daré algunas ideas, pero tendrás que currártelo tú.

public class PruebaEncriptacion {


public static void main(java.lang.String[] args) {

String lee = new String();
String mayus = new String();
char caracter = 0;


lee = lectura();
int tam = lee.length();

char[] cadenasub = new char[tam+256];
for ( int i=0; i<cadenasub.length; i++){
cadenasub[i] = (char) ((Math.random() * 41)+48); }

mayus = lee.toUpperCase();

for ( int i = 0; i < mayus.length(); i++ ){

cadenasub[5*i] = mayus.charAt(i);
}
System.out.println();

System.out.println("Encriptada: ");

for ( int i = 0; i < cadenasub.length;i++){

System.out.print(cadenasub[i]);
}

System.out.println();
System.out.println();
System.out.println("Quiere desencriptar la cadena ?( S / N)");

try {
caracter = (char) System.in.read();
System.in.skip(2);

}catch (java.io.IOException e) {
System.out.println(e.getMessage());
}

if( caracter == 'S') {

System.out.println("Desencriptada: ");

char[] a = new char[tam];

for ( int i = 0, j = 0; i < cadenasub.length && j < tam;i++,j++) {

a[j] = cadenasub[5*i];
}


for ( int i = 0; i < tam; i++){

System.out.print(a[i]);
}
}else if(caracter == 'N'){
System.out.println("Adios");
System.exit(1);
}else{
System.out.println("Debe introducir S ó N");
System.out.println("Adios");
System.exit(1);
}

}

public static String lectura() {
String s=new String();
String temp=new String();
char cad;
System.out.println("Introduce una cadena");

try {
while ((cad = (char) System.in.read())!='\n')
s += cad;
}catch (java.io.IOException e) {
System.out.println(e.getMessage());
}

for (int i=0; i<s.length()-1; i++)
temp += s.charAt(i);

return temp;
}

}


Con respecto a las ideas, si lo que quieres es cambiar una determinada letra por otra....
String aa = "Secundaria";
String nuevaPalabra;
for (int i=0, i<aa.length, i++) {
if (aa.charAt(i) == 'c') {
nuevaPalabra = aa.replace(charAt(i),'S');
}
//para cambiar una 'a'
if (aa.charAt(i) == 'a') {
nuevaPalabra = aa.replace(charAt(i),'o');
}
}

Y ten cuidado que no haga replaces sobre los elementos substituidos (para eso puedes usar booleans de control). Otra cosa sería armar un array de chars y cambiarlo directamente si en la cadena encuentra un char de un determinado valor, y la otra opción si tienes palabras en un string más largo y quieres cambiarlas por otras, sería truncar los espacios con un ltrim y detectar cuando aparece otro espacio y dejar las palabras por separado en un array de Strings, cambiando directamente la palabra que quieras controlar por otra...

Como ves tienes miles de maneras, solo tienes que saber exactamente qué es lo que quieres hacer y ponerte a ello.