Ciao a tutti (mi dovrei presentare da qualche parte?
)
Alloora, sto lavorando a un programmino abbastanza semplice ma sono tre giorni che sto dietro a un problemino che non riesco a sbrogliare:
In pratica l'utente deve inserire tramite uno Scanner la data di oggi e il programma deve riconoscere se la cosa inserita è una data.
Se lo è, deve assegnarla a un oggetto di tipo Data(g,m,a) e controllare se è effettivamente la data di oggi confrontandola con un dataOggi(valori gettati da un Calendar). Se non lo è, deve richiederla.
Nel caso l'input non sia una data, se l'input è "no" deve dire all'utente che è un maleducato e richiedere, altrimenti dire "non è una data" e richiedere.
Dopo duemila tentativi, provando con tonnellate di while e if combinati diversamente, ho trovato un modo che mi fa (finalmente) funzionare l'assegnazione e il controllo dell'input.
Però (sì, c'è un però) non funziona la parte if("no"), e passa direttamente all'else.
Ecco la parte di codice:
codice:
while(!dataInput.equals(dataOggi)){
/*String*/ inputter = sc.next();
try {
dataInput.setDateFromInput(inputter);
if(!dataInput.equals(dataOggi)) System.out.println("Non è di oggi");
} catch (Exception e) {
if (inputter=="No"||inputter=="no")
{
System.out.println("Scostumato.");
sc.nextLine();
}
else
{
System.out.println("Non è una data quella");
sc.nextLine();
}
}
}
il metodo SetDateFromInput è il seguente, e grazie al cielo almeno lui funziona 
codice:
public void setDateFromInput(String s){
String[] token = s.split("/");
this.setGiorno(Integer.parseInt(token[0]));
this.setMese(Integer.parseInt(token[1]));
this.setAnno(Integer.parseInt(token[2]));
}
Chi mi aiuta a capire perché e come fare?