Salve,
il nostro programma deve confrontare dei dati, però quando inseriamo tali dati ci da errori durante il confronto... vi posto i codici:
il problema sta proprio qui "Appuntamento p=agenda.confronta(dati);";codice:do { System.out.println("Inserire correttamente Cognome e Nome o Nominativo *: "); dati[0] = in.nextLine(); if (dati[0].equalsIgnoreCase("Q")) { 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 dell'esistenza della data verifica.data(dati); do { System.out.println("Orario di appuntamento (hh:mm): "); dati[3] = in.nextLine(); if (dati[3].equalsIgnoreCase("Q")) { System.out.println(""); return; } } while (dati[3].equals("") || dati[3].length() != 5 || ! (dati[3].substring(2,3).equals(":"))); //verifica dell'esistenza dell'ora verifica.ora(dati); //creazione della chiave chiave=dati[2]+dati[3]; //inserisco la chiave nell'arraylist dati[5]=chiave; do { System.out.println("Durata di appuntamento (mm: max 3 cifre): "); dati[4] = in.nextLine(); if (dati[4].equalsIgnoreCase("Q")) { System.out.println(""); return; } } while (dati[4].equals("") || (dati[4].length() != 3)); Appuntamento p=agenda.confronta(dati);
Agenda.java (qui invece è il confronto)
Vi posto l'errore:codice:public Appuntamento confronta(String[] dati){ int durata = (Integer.parseInt(dati[4])); numeroAppuntamenti = vAppuntamenti.size(); if (numeroAppuntamenti==0){} else { int conta_app=0; for (int i = 0; i <= numeroAppuntamenti; i++) { p = vAppuntamenti.get(i); String durata_esistente=p.getDurata(); String data_esistente = p.getData(); if (dati[2].equalsIgnoreCase(data_esistente)) { String ora_esistente=p.getOrario(); if (dati[3].equalsIgnoreCase(ora_esistente)){ conta_app=conta_app+1; } } if (conta_app>1) System.out.println("ATTENZIONE!!!!!!!!!! \n in quest'orario hai gia' un appuntamento che inizia alle"+ data_esistente +"e dura "+durata_esistente); } } return null; }
codice:Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at Agenda.confronta(Agenda.java:91) at InterfacciaAgenda.ins(InterfacciaAgenda.java:93) at ApplicazioneAgenda.main(ApplicazioneAgenda.java:45) Process completed.![]()

Rispondi quotando