
Codificando un string
Publicado por Xavi (21 intervenciones) el 22/10/2021 21:00:13
Soy nuevo en Java. Estoy intentando implementar un método que permita codificar una cadena de texto recibida como parámetro text. El texto de entrada únicamente tiene carácteres de la a-z y signos de puntuación. La codificación tiene que ser la siguiente:
1. El texto puede tener letras en mayúsculas pero estas se tienen que convertir a minúsculas.
2. Los signos de puntuación se ignoran.
3. Cada letra del texto se substituye por otra que se encuentra a una distancia N posiciones adelante en el alfabeto. Este valor N viene determinado por el parámetro distance.
4. El alfabeto es circular, es decir, la siguiente letra después de la 'z' es la 'a'.
5. El parámetro distance puede tener una longitud mayor a la del alfabeto (26). Al ser circular, si es mayor que 26, volverá al inicio.
Hasta el momento he hecho lo siguiente:
Unos ejemplos de aplicación y resultado del método seria:
Mi idea es separar el texto recibido en letras e ir a buscar estas letras en la constante ALPHABET y aplicar el desplazamiento pero no consigo saber cómo hacerlo.
Muchas gracias de antemano
1. El texto puede tener letras en mayúsculas pero estas se tienen que convertir a minúsculas.
2. Los signos de puntuación se ignoran.
3. Cada letra del texto se substituye por otra que se encuentra a una distancia N posiciones adelante en el alfabeto. Este valor N viene determinado por el parámetro distance.
4. El alfabeto es circular, es decir, la siguiente letra después de la 'z' es la 'a'.
5. El parámetro distance puede tener una longitud mayor a la del alfabeto (26). Al ser circular, si es mayor que 26, volverá al inicio.
Hasta el momento he hecho lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Codificando {
private static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
/*
** @param text: texto que tendrá que ser codificado
** @param distance: valor de desplazamiento en el alfabeto
*/
public String code (String text, int distance){
// Convertimos el texto de entrada a minúsculas
String text_low = text.toLowerCase();
// Separamos el texto en letras
String[] text_letters = text_low.split("");
// Problemática a resolver
}}
Unos ejemplos de aplicación y resultado del método seria:
1
2
3
4
code("a",1) -> return "b"
code("a",3) -> return "c"
code("z",2) -> return "b"
code("vaca",5) -> return "afhf"
Mi idea es separar el texto recibido en letras e ir a buscar estas letras en la constante ALPHABET y aplicar el desplazamiento pero no consigo saber cómo hacerlo.
Muchas gracias de antemano
Valora esta pregunta


0