Salve a tutti, premetto che non sono un esperto, ma anzi, lo sto iniziando a masticare ora e molto non mi è chiaro. Chiedo quindi perdono sia per errori forse banali, sia per l'uso del forum (titolo forse troppo generico?).
Vengo a spiegare il problema. Avendo in esame 3 Stazioni "Domodossola", "Novara" e "Verbania" e in input Il luogo di partenza, il luogo di arrivo e un orario indicativo, devo mostrare tutti i treni che percorrono quella tratta.
L'ho praticamente completato, leggo un file TXT con una struttura del genere:
E così via.codice:Domodossola:Novara:8.07:9.17 Luogo_Partenza:Luogo_Destinazione:Orario_Partenza:Orario_Arrivo
Prendo una stringa, la scompongo grazie al termine ":" e carico ogni token su una stringa. Poi verifico che l'utente voglia andare, ad esempio, da Domodossola a Novara e controllo che al primo posto ci sia Domodossola (Luogo_Partenza) e che subito dopo ci sia Novara (Luogo_Destinazione).
Il codice spiega più di mille parole
Prendo "Pezzi di codice" per non occupare troppo spazio, comunque con il codice seguente faccio il lavoro sporco, caricando in A il Luogo di Partenza, in B il luogo di destinazione in C e D gli orari.codice:while (n==0){ System.out.println("Inserisci il Luogo da dove vuoi partire "); System.out.println("1. Domodossola"); System.out.println("2. Novara"); System.out.println("3. Verbania - Pallanz / Gravellona Toce"); Luogo_Partenza=br.readLine(); //Assumo il valore con l'oggetto br (linea 21) e utilizzo il metodo readLine() switch(Luogo_Partenza) { case "1": System.out.println("Inserisci Destinazione:"); System.out.println("1. Novara"); System.out.println("2. Verbania - Pallanz / Gravellona Toce"); Luogo_Destinazione=br.readLine(); n++; break; //si ferma qui [.....] default: System.out.println("ERRORE: INSERISCI UN VALORE"); }
Poi controllo che l'utente abbia inserito, ad esempio, in Luogo_Partenza il valore 1, e in Luogo_Destinazione il valore 2. Inoltre controllo se in A c'è effettivamente la parola che voglio.
Ripeto, il problema è che non entra in nessun IF. Ho provato anche a stampare i valori subito dopo l'IF, tutti come li voglio io, ma comunque non entra nell'IF anche se soddisfo tutte le condizioni!codice:String lettura; while ((lettura = b.readLine()) != null){ StringTokenizer st = new StringTokenizer(lettura, ":"); while (st.hasMoreTokens()){ String A = st.nextElement().toString(); String B = st.nextElement().toString(); String C = st.nextElement().toString(); String D = st.nextElement().toString(); boolean DomodossolaA = A.equalsIgnoreCase("Domodossola"); boolean DomodossolaB = B.equalsIgnoreCase("Domodossola"); boolean VerbaniaA = A.equalsIgnoreCase("Verbania"); boolean VerbaniaB = B.equalsIgnoreCase("Verbania"); boolean NovaraA = A.equalsIgnoreCase("Novara"); boolean NovaraB = B.equalsIgnoreCase("Novara"); //System.out.println(Luogo_Partenza+Luogo_Destinazione+DomodossolaA+NovaraB); if ((Luogo_Partenza=="1") && (Luogo_Destinazione=="1") && (DomodossolaA==true) && (NovaraB==true)){ System.out.println(A+" "+B+" "+C+" "+D); } else if ((Luogo_Partenza=="1") && (Luogo_Destinazione=="2") && (DomodossolaA==true) && (VerbaniaB==true)){ System.out.println(A+B+C+D); } else if ((Luogo_Partenza=="2") && (Luogo_Destinazione=="1") && (NovaraA==true) && (DomodossolaB==true)){ System.out.println(A+B+C+D); } else if ((Luogo_Partenza=="2") && (Luogo_Destinazione=="2") && (NovaraA==true) && (VerbaniaB==true)){ System.out.println(A+B+C+D); }
Il codice completo è disponibile QUI
Grazie a tutti e scusatemi se sono troppo prolisso!![]()

