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:
il metodo SetDateFromInput è il seguente, e grazie al cielo almeno lui funzionacodice: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(); } } }
Chi mi aiuta a capire perché e come fare?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])); }![]()