Para hacer el programa hemos tenido en cuenta algunos casos especiales, por ejemplo la palabra queso no queremos que nos la traduzca en qupuepesopo, queremos que se quede así: quepesopo. Por lo tanto debemos tener en cuenta hay que tener que pasar por alto la letra "u" cuando no se pronuncia como en queso, bloque, queso...
Veamos el código fuente del programa:
import java.util.Scanner; class Jeringozo { public static void main(String[] args) { Scanner sca = new Scanner (System.in); System.out.println("Introduce la frase:"); String frase = sca.nextLine(); char vocal;
char[]sep = frase.toCharArray(); for(int i = 0; i < frase.length(); i++){ if(frase.charAt(i) == 'a' || frase.charAt(i)== 'e' || frase.charAt(i)== 'i'|| frase.charAt(i)=='o' ){ vocal = frase.charAt(i); System.out.print(sep[i] + "p" + vocal); } else if(frase.charAt(i)== 'g' || frase.charAt(i)== 'q' && (frase.charAt(i+1)=='u' && frase.charAt(i+2) == 'e'||frase.charAt(i+2)=='i')){ System.out.print(sep[i]); } else if(frase.charAt(i)=='u' &&( frase.charAt(i+1) != 'e' && frase.charAt(i+1)!='i')){ vocal = frase.charAt(i); System.out.print(sep[i] + "p" + vocal); } else{ System.out.print(sep[i]); } } System.out.println(); } }
- Pasamos la frase a un array de caracteres (tipo char).
- Creamos bucle for que recorrerá carácter a carácter la frase.
- Condicional if que si el carácter de la posición actual es "a", "e", "i" u "o" entonces la variable vocal de tipo char tendrá el valor de la vocal y se imprime por pantalla la vocal + letra p + vocal
- Otro condicional que comprueba que si el carácter de la posición actual es "g" o "q" y además la siguiente letra es "u"
No hay comentarios:
Publicar un comentario