Java - No me funciona una llamada

 
Vista:

No me funciona una llamada

Publicado por Rafael L. (6 intervenciones) el 14/05/2007 08:48:30
Hago esto en una clase

letradevuel = (new PersonasFisicas(jTextNum8Doc.getText()));

Para llamar a la siguiente clase

public class PersonasFisicas {

public String PersonasFisicas(String Cadena) {
String DevolLetra;
String [] ArrayLetra = null;
ArrayLetra[1] = "T";
ArrayLetra[2] = "R";
ArrayLetra[3] = "W";
ArrayLetra[4] = "A";
ArrayLetra[5] = "G";
ArrayLetra[6] = "M";
ArrayLetra[7] = "Y";
ArrayLetra[8] = "F";
ArrayLetra[9] = "P";
ArrayLetra[10] = "D";
ArrayLetra[11] = "X";
ArrayLetra[12] = "B";
ArrayLetra[13] = "N";
ArrayLetra[14] = "J";
ArrayLetra[15] = "Z";
ArrayLetra[16] = "S";
ArrayLetra[17] = "Q";
ArrayLetra[18] = "V";
ArrayLetra[19] = "H";
ArrayLetra[20] = "L";
ArrayLetra[21] = "C";
ArrayLetra[22] = "K";
ArrayLetra[23] = "E";

int n = Integer.parseInt(Cadena);
n = (n % 23);
DevolLetra = ArrayLetra[n];
return DevolLetra;
}
}

Y no me funciona

Gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No me funciona una llamada

Publicado por Gonzalo (180 intervenciones) el 14/05/2007 11:32:48
Hay tantas cosas mal... Veamos:

1. Un constructor no puede devolver nada.
2. No has inicializado el ArrayLetras.
3. Esto debería ser estático
4. La conversión de cadena a entero puede soltar excepciones
5. De hecho la conversión no debería hacerse y deberíamos recibir un entero, no una cadena.
6. Los índices de los arrays empiezan en 0, no en 1. Y el módulo (n % 23) te devuelve valores de 0 a 22, no de 1 a 23.

Eso es lo más importante que se me ocurre así a simple vista.

public class CalculadorPersonasFisicas {
····private static String[] Letras = {"T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"};

····public static String CalcularLetra(int n) {
········return Letras[n % 23];
····}
}


Y para usar esto si tenemos una String Cadena, haríamos algo como...

(...)
····String miLetra = "";
····try {
········int n = Integer.parseInt(Cadena);
········miLetra = CalculadorPersonasFisicas.CalcularLetra(n);
····} catch (NumberFormatException nfe) {
········// La cadena que teníamos no era un número!
····} catch (Exception e) {
········// Ha ocurrido algún otro error...
····}
(...)

NOTA: Este código podría tener errores :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar