Quote Originariamente inviata da andbin Visualizza il messaggio
Innanzitutto potresti sfruttare il null (che è pure il valore di default degli elementi nell'array String[]) per indicare che è "vuoto".

Sulle eccezioni, a dire il vero, dovresti considerarle fin da subito. Per evitare di scrivere codice lungo e contorto, dovresti separare le cose in più metodi. Visto che di Scanner agganciato a System.in ne devi avere solo UNO, dovresti tenerlo da qualche parte in modo che sia riutilizzabile. NON pensare ad un campo "static". Sarebbe meglio sfruttare una istanza di PianificareAppuntamenti, mantenendo Scanner, l'array ed eventualmente altro come "stato" dell'oggetto.
Quindi dovresti cambiare radicalmente approccio e per ottime ragioni.
ok, ci provo...

Quote Originariamente inviata da andbin Visualizza il messaggio
Riguardo il come associare le ore agli indici, ci sono varie soluzioni, anche più "object oriented" di quello che hai fatto finora. Come ad esempio definire una classe Appuntamento che modella solo l'appuntamento (niente input qui dentro!) con l'ora e la descrizione. L'ora chiaramente sarebbe già presente fin dall'inizio negli oggetti. E poi chiaramente avere un array Appuntamento[] .
Ok, sto creando la classe Appuntamento in questo modo:

codice:
package eccezioni;


public class Appuntamento {
	private int ora;
	private String descrizione;
	private String agendaoraria[] = new String[6];
	
	public Appuntamento(){
	ora=0;
	descrizione=null;
	}
	
	public void resetAgenda(){
		for(int i=0;i<agendaoraria.length;i++){
			agendaoraria[i]=null;
		}
	}
	
	public int setAppuntamento(int orario, String commento){


		
	}
}
ma come associo l'int orario che ricevo in setAppuntamento e l'indice dell'array per controllare che lo slot sia pieno o meno?

Quote Originariamente inviata da andbin Visualizza il messaggio
Questo per via del solito "annoso" mix di nextLine con gli altri nextXXX (es. nextInt). Se ad un nextInt l'utente digita 123<invio>, il nextInt restituisce 123 ma il newline resta ancora in Scanner e sarà usato come delimitatore per la prossima lettura. NON viene buttato via subito.
Ma se appena dopo fai un nextLine(), esso "vede" una riga vuota e questo è il motivo di quel comportamento. Che NON è un "baco" di Scanner, funziona così e basta.
Capito, ma come posso ovviare al problema?