Salve ho svolto questo esercizio(input da tastiera)
public static void main(String[] args) {
String autore;
String annoPubblicazione;
String titolo;
String casaEditrice;
Scanner sc= new Scanner(System.in);
System.out.println("Inserisci il nome dell'autore ");
autore=sc.nextLine();
System.out.println("Anno Pubblicazione ");
annoPubblicazione=sc.nextLine();
System.out.println("Titolo");
titolo=sc.nextLine();
System.out.println("Casa Editrice");
casaEditrice=sc.nextLine();
String codiceBarre=autore.substring(0,2).toUpperCase()+"-"+
annoPubblicazione+"-"+titolo.substring(0,3).toUpperCase()+"("+
casaEditrice.substring(0,1) +
casaEditrice.substring(casaEditrice.length()-1, casaEditrice.length())+
")";
System.out.println(codiceBarre);
sc.close();
}
}
mi è stato chiesto di mettere un controllo dopo l'anno di pubblicazione, dove dice che se metto una string al posto di un int mi da errore e mi richiede l'anno di pubblicazione finche non è giusto
String anno = "1234567890";
boolean input = true; //da un valore vero o falso
for (int i=0; i<annoPubblicazione.length(); i++)
input = input & Character.isDigit(annoPubblicazione.charAt(i));
Gli indici stringa iniziano da zero*/
if (input) {
System.out.println("Contine l'anno");
} else {
System.out.println("Non contiene l'anno");
}
ho provato con questo tipo di cilo, ma quando metto una string al post di un int mi dice non contiene l'anno e il programma va avanti senza richiedere l'anno esatto, come posso risolvere? grazie