[Java] Sustituir caracteres por números

Iniciado por Wick3D, 8 Diciembre 2016, 20:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Wick3D

Buenas a todos. Estaba desarrollando un programita super simple en java como trabajo de clase que consiste en que se introduzca una frase por teclado y te devuelva esa frase pero con las vocales sustituidas por números.

Código (java) [Seleccionar]
import javax.swing.*;

public class codificacion {

public static void main(String[] args) {

char letra;
String frase,frase2="";

frase=JOptionPane.showInputDialog("Introduce una frase:");

for (int j = 0; j < frase.length(); j++) {
letra = frase.charAt(j);

if (letra=='a') {
letra = 1;
}
if (letra=='e') {
letra = 2;
}
if (letra=='i') {
letra = 3;
}
if (letra=='o') {
letra = 4;
}
if (letra=='u') {
letra = 5;
}
else {
frase2 = frase2+letra;
}
}
System.out.println(frase2);
}

}


Todo va correcto, pero cuando me devuelve el resultado, lo que deberían aparecer como números aparecen como caracteres no reconocidos (el cuadradito en blanco).
¿Sabéis a que puede ser debido ésto?. Muchas gracias de antemano por cualquier respuesta.

ivancea96

Pusiste letra = 1. Estás igualando letra a un número, es decir, a su valor en la codificación que sea.
A uncaracter, normalmente le asignarás otro caracter, es decir: letra = '1'

Y como detalle, quita el else del final, donde el if 'u', o no meterás los '5'.

Wick3D

Muchisimas gracias ivancea. Me has ayudado muchisimo, te agradezco tu respuesta ^^

Impnothing

Si lo que quieres es que sea un entero en vez de caracter, hazle un parseInt a cada letra que cambies. saludos! :D