Tema: Tonteria
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/06/2008, 11:36
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Tonteria

Tienes dos problemas: uno de paréntesis y otro de índices:

1. Lo que estás haciendo es buscar en v la posición de (c[i] +semilla), cuando lo que deberías hacer es buscar la posición de c[i] y luego desplazarlo semilla:
En lugar de v.indexOf((Character)c[i]+semilla)
Esto v.indexOf((Character)c[i])+semilla

2. Estás sumando semilla, pero realmente esto te va a llevar en ocasiones fuera del Vector. Tienes que hacer que cuando se pase vuelva al inicio.

El bucle quedaría así:
Código:
for(int i=0;i<c.length;i++){
    int posicion = v.indexOf((Character)c[i]); // Busca la posición inicial
    posicion += semilla; // Desplazamos semilla
    posicion = posicion%v.size; // aplicamos módulo del tamaño de v.
    sb.append(v.get(posicion));
}