Java - traductor braille

 
Vista:
sin imagen de perfil

traductor braille

Publicado por manu (9 intervenciones) el 10/09/2013 19:17:40
Hola a todos, tengo un problema a la hora de decodificaciontengo un metodo toBraille().
Ese metodo tiene que devolver un char. Al principio le damos un valor por defecto al char para que no joda con el return.
Pero con ese metodo tiene que cambiarlo por el caracter que representa el simbolo braille. Y AHI ESTA EL PROBLEMA: que cuando compara el simbolo braille que leimos con el codigo[i] ("if (a.esIgual(codigo[i])") siempre da error, incluso cuando los dos objetos que se comparan son iguales!
Alguien me puede ayudar?
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
sin imagen de perfil

traductor braille

Publicado por UnoPorAhi (128 intervenciones) el 10/09/2013 19:31:34
Si son char entonces son variables nativas y no objetos, por lo que se comparan con ==

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

traductor braille

Publicado por manu (9 intervenciones) el 10/09/2013 20:41:33
Muchisimas gracias por el aporte, mira lo tengo asi
public boolean esIgual(Braille b) { //a.esigual(b)
boolean igual = false;
if ((this.sup.equals(b.sup)) && (this.med == b.med) && (this.inf == b.inf)) {
igual = true;
}
return igual;

Pero sigue sin funcionar la decodificacion, me estoy preocupando porque lo necesito para esta noche :s
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
sin imagen de perfil

traductor braille

Publicado por manu (9 intervenciones) el 10/09/2013 21:17:00
1º ----> if (a.esIgual(codigo[i])) {

2º ----> if ((a.sup == codigo[i].sup) && (a.med == codigo[i].med) && (a.inf == codigo[i].inf)){

3º ----> b = codigo[i]; // dividir los strings por separado
* String superior = b.sup;
* String medio = b.med;
* String inferior = b.inf;
* if ((a.sup == superior) && (a.sup == medio) && (a.inf == inferior)){

4º ---> if ((SonIguales(a.sup , b.sup)) && (SonIguales(a.med , b.med)) && (SonIguales(a.inf , b.inf))){
con el metodo
SonIguales(Braille a, Braille b){
boolean iguales = false;
if (a == b){
iguales = true;
}
return iguales;
}

De estas 4 formas lo intente y nada. Hay alguna manera que te mande mi proyecto, seguro que es una chorrada y me estoy volviendo loco :s.
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
sin imagen de perfil

traductor braille

Publicado por manu (9 intervenciones) el 10/09/2013 22:14:55
Lo siento otra vez... ayudarme porfavorrr, me salta una excepcion, sino pasa a lo que hay en mayusculas

public static char toCaracter(Braille a) throws Exception { //pasa de BRAILLE a CHAR
boolean trobat = false;
int i = 0;
char d = 'n'; //LO QUE PONGAMOS EN EL CARACTER d, ES LO QUE DEVOLVERÁ
Braille b;
while ((i <= 27) && !trobat) {
// if (a.esIgual(codigo[i])) {
// if ((a.sup == codigo[i].sup) && (a.med == codigo[i].med) && (a.inf == codigo[i].inf)){
b = codigo[i];
// String superior = b.sup;
// String medio = b.med;
// String inferior = b.inf;
if ((SonIguales(a.sup , b.sup)) && (SonIguales(a.med , b.med)) && (SonIguales(a.inf , b.inf))){// no compara bien
// if ((a.sup == superior) && (a.sup == medio) && (a.inf == inferior)){ //DA ERROR AQUI, AUNQUE LAS LETRAS //SEAN IGUALES NUNCA ENTRA DENTRO DEL if, LA CONDICION SIEMPRE DA NEGATIVA

trobat = true;
d = alfabeto[i];
}
i++;
}
if (!trobat) {
return d; //retorna el caracter que representa
} else {
System.err.println("Caracter no ha sido encontrado toCaracter()" + error);
error ++;
return d; //Y POR ESO SIEMPRE DEVUELVE EL CARACTER d QUE INTRODUJIMOS AL PRINCIPIO
}
}
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
sin imagen de perfil

traductor braille

Publicado por UnoPorAhi (128 intervenciones) el 11/09/2013 23:33:29
No te sale porque estás poniendo un AND (&&) en lugar de OR (||)

if ((a.sup == superior) || (a.sup == medio) || (a.inf == inferior))

No puede ser que al mismo tiempo la letra sea superior, medio e inferior.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

traductor braille

Publicado por manu (9 intervenciones) el 12/09/2013 01:09:22
Muchas gracias ya lo vi ayer jeje Ya esta solucionado. Y otra vez mil gracias
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