Hola, tengo la siguiente duda: tengo que hacer un main con distintas operaciones, y tengo duda con esta; la cosa es que si el operador ha tecleado la localidad que ocupa el puesto 0, 3 o 6 pregunte: "Escriba un año:" y si el año es el dato que ocupa en la tabla el 0, 1 o 2 que presente unos datos por pantalla, que haré más adelante. (Se supone que las localidades que ocupan los puestos 0-1-2 es una, 3-4-5 es otra y 6-7-8 es otra, y que la tabla se compone de {AÑO,LOCALIDAD,TEMPERATURAS}).
Mi problema es que cuando ejecuto la clase y me pregunta por la localidad, y tecleo cualquier localidad presente en la tabla, me da error, y dice "No hay datos para esa localidad". No se si es error de los operadores lógicos "||" o "&&", o qué...
else if(operacion==2) { System.out.printf("Escriba el nombre de una localidad: " ); Scanner sc = new Scanner(System.in); String str = sc.next(); if(str==tablaDatos[0].localidad() || str==tablaDatos[3].localidad() || str==tablaDatos[6].localidad()) { System.out.printf("Escriba un año: "); Scanner sr = new Scanner(System.in); int num = sr.nextInt(); System.out.printf("No hay datos para esa localidad\n"); else if {(str!=tablaDatos[0].localidad() && str!=tablaDatos[3].localidad() && str!=tablaDatos[6].localidad()) { System.out.printf("No hay datos para esa localidad\n"); if(num==tablaDatos[0].agno() || num==tablaDatos[1].agno() || num==tablaDatos[2].agno()) { System.out.printf("No hay datos para este año\n"); else if {(num!=tablaDatos[0].agno() && num!=tablaDatos[1].agno() && num!=tablaDatos[2].agno()) { System.out.printf("Temperaturas medias mensuales\n" + "%s (%d)\n", str, num); } } } }
A ver si me podéis ayudar, he intentado también esto:
int i=0; while(tablaDatos[i].localidad()!=str && i<tablaDatos.length-1) i++; if(tablaDatos[i].localidad()==str) System.out.printf("aaa"); else System.out.printf("sss");
Y SIEMPRE SACA POR PANTALLA "sss". ¿VEIS EL FALLO? AYUDA.