salve
abbiamo un problema per il quale java ci viualizza questo messaggio:
ecco il codice ke chiama la classe verifica.data()codice:Exception in thread "main" java.lang.NullPointerException at Verifica.data(Verifica.java:7) at InterfacciaAgenda.ins(InterfacciaAgenda.java:63) at ApplicazioneAgenda.main(ApplicazioneAgenda.java:45)
ecco il codice di verifica.data()codice:public void ins() throws IOException, ClassNotFoundException{ for (int i = 0; i < 9; i++) { //svuoto l'array dati[i] = ""; } System.out.println(""); System.out.println("Inserire i dati [Q per annullare]:"); System.out.println(""); do { System.out.println("Inserire correttamente Cognome e Nome o Nominativo *: "); dati[0] = in.nextLine(); if (dati[0].equalsIgnoreCase("Q")) { //ad ogni inserimento di valori in input verifico se l'utente vuole annullare l'operazione System.out.println(""); return; } } while (dati[0] == null || dati[0].length() == 0 || dati[0].equals(" ")); do { System.out.println("Luogo di appuntamento: "); dati[1] = in.nextLine(); if (dati[1].equalsIgnoreCase("Q")) { System.out.println(""); return; } } while (dati[1] == null); do{ System.out.println("Inserire la data nel seguemte formato (GG-MM-AAAA): "); dati[2] = in.nextLine(); if (dati[2].equalsIgnoreCase("Q")) { System.out.println(""); return; } } while (dati[2].equals("") || (dati[2].length() != 10) || ! (dati[2].substring(2, 3).equals("-")) || ! (dati[2].substring(5, 6).equals("-")) ); verifica.data();
aiuto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!codice:public class Verifica{ public String data(){ String giorni =(dati[2].substring(0,2)); int giorno=(Integer.parseInt(giorni)); if (giorno >31) { out.println("Giorno errato"); return null; } String mesi = (dati[2].substring(4,5)); int mese=(Integer.parseInt(mesi)); if (mese >12) { out.println ("Mese errato"); return null; } String anni =(dati[2].substring(7,10)); int anno=(Integer.parseInt(anni)); if (mese == 2) { if (anno%400 == 0 || (anno%4 == 0 && anno%100 != 0)) { if (giorno > 29) {out.println("L'anno "+anno+" è bisestile,per cui il mese di febbraio ha massimo 29 giorni" );} else {if (giorno > 28) {out.println("Dato che "+anno+" non è bisestile, febbraio ha massimo 28 giorni" );} } } } else { if (mese ==1 || mese ==3 || mese ==5 || mese ==7 || mese ==8 || mese ==10 || mese ==12) { if (giorno > 31){ out.println("Per il mese "+mese+ " il giorno è errato!!!"); }} else { if (giorno > 31){ out.println("Per il mese "+mese+ " il giorno è errato!!!"); } } } return null; }

Rispondi quotando
