Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Asignar un numero a cada letra

Hola, me pueden ayudar con 1 problema, el código ya lo tengo y lo adjunto aquí, el programa se trata de ingresar una cadena de texto en imprimir la cadena en números, asignando cada letra un numero desde a=1,b=2... así. El problema que tengo es que el "espacio" que separa cada palabra se representa como "-64" y quiero que se represente con "0" , solo eso, alguien me ayuda por favor, lo que he hecho esta aquí:

public class LetraANumero {

public static void main(String[] args) {

String s = "Hola Mundo";
String cad = s.toLowerCase();
String t = "";
for (int i = 0; i < cad.length(); ++i) {
char ch = cad.charAt(i);
if (!t.isEmpty()) {
t += " ";}
int n = (int)ch - (int)'a' + 1;
t += String.valueOf(n);}
System.out.println(t);}}

agosto 1, 2014 | Unregistered CommenterSalem

public class LetraANumero {

public static void main(String[] args) {

String s = "Hola Mundo";
String cad = s.toLowerCase();
String t = "";
for (int i = 0; i < cad.length(); ++i) {
char ch = cad.charAt(i);
if (!t.isEmpty()) {
t += " ";
}
int n = ch == ' ' ? 0 : ch - 'a' + 1;
t += String.valueOf(n);
}
System.out.println(t);
}
}

agosto 1, 2014 | Registered Commenterchoces

Otra manera de resolverlo, más sencilla y eficiente:

public class LetraANumero {

public static void main(String[] args) {

String s = "Hola Mundo";
char[] cad = s.toLowerCase().toCharArray();
StringBuilder t = new StringBuilder();
for (char item : cad) {
t.append(item == ' ' ? 0 : item - 'a' + 1).append(" ");
}
System.out.println(t.toString());
}
}

agosto 1, 2014 | Registered Commenterchoces