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:
codice:
Domodossola:Novara:8.07:9.17
Luogo_Partenza:Luogo_Destinazione:Orario_Partenza:Orario_Arrivo
E così via.
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
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");
                 
                      }
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.
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.
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);
}
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!
Il codice completo è disponibile QUI
Grazie a tutti e scusatemi se sono troppo prolisso!