Help esercizio

di il
5 risposte

Help esercizio

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

5 Risposte

  • Re: Help esercizio

    Converti la String in int su un altra variabile, e poi fai il controllo
  • Re: Help esercizio

    robot ha scritto:


    Converti la String in int su un altra variabile, e poi fai il controllo
    ho provato a cambiare la String in int ma il risultato è sempre lo stesso

    Inserisci il nome dell'autore
    carlo
    Anno Pubblicazione
    ddd
    Non contiene l'anno
    Titolo
  • Re: Help esercizio

    Devi fare un loop che continua a chiederti l'anno se inserisci una lettera, quindi
            Scanner sc= new Scanner(System.in);
            boolean input = true; 
            String annoPubblicazione;
            while(input){
                System.out.println("Anno Pubblicazione ");
                annoPubblicazione=sc.nextLine();
                for (int i=0; i<annoPubblicazione.length(); i++){
                    if(Character.isLetter(annoPubblicazione.charAt(i))){
                        input = true;
                        break;
                    }
                    else{
                        input = false;     
                    }
            }
  • Re: Help esercizio

    Oppure:
    
    public boolean VerificaNumericAndString(String num) {
        try {
            int miaStringa =Integer.parseInt(num);
        } catch (NumberFormatException | NullPointerException nfe) {
            return false;
        }
        return true;
    }
    
    
  • Re: Help esercizio

    Perfetto grazie!
Devi accedere o registrarti per scrivere nel forum
5 risposte