Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA] Classe Scanner

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    122

    [JAVA] classe Scanner

    Ciao a tutti...devo fare un esercizio x l'uni e non riesco a capire perchè mi dà l'errore che adesso v presento.La classe è TestRubrica


    Scanner tastiera = new Scanner(System.in);
    try
    {
    System.out.print("Inserire il nome del file da caricare: ");
    String path = tastiera.next();
    Scanner file = new Scanner(new File(path));
    while(file.hasNextLine())
    {
    file.findInLine("nome: (\\w+) cognome: (\\w+) via: (\\w+) nc: (\\w+) citta (\\w+) casa: (\\w+) uff: (\\w+)");
    MatchResult result = file.match();
    nome = result.group(1);
    cognome = result.group(2);
    via = result.group(3);
    citta = result.group(4);
    casa = result.group(5);
    uff = result.group(6);
    System.out.println(nome+" "+cognome+" "+via+" "+citta+" "+casa+" "+uff);
    }
    file.close();
    } catch (IOException e) {e.printStackTrace();}

    Questo invece è il file dal quale leggo i dati:
    nome: Mario cognome: Rossi via: Po nc: 23 citta: Torino casa: 0118888888 uff: 0116789562393
    nome: Anna cognome: Bianchi via: Roma nc: 345 citta: Torino casa: 0115555555 uff: 0
    nome: Gigi cognome: Verdi via: Volpiano nc: 7 citta: Brandizzo casa: 0113333333 uff: 0
    nome: Lucia cognome: Neri via: Messene nc: 45 citta: Ivrea casa: 012387324 uff: 01257774356
    nome: Angelo cognome: Verdi via: Roma nc: 7 citta: Ivrea casa: 0125435587 uff: 0

    Quando gli dico il file dal quale leggere il tutto mi dà questo errore:
    Exception in thread "main" java.lang.IllegalStateException: No much result available
    at java.util.Scanner.match(Scanner.java:1239)
    at TestRubrica.main(TestRubrica.java:33)

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    IllegalStateException: Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.

    Praticamente

    String path = tastiera.next();

    viene chiamato in un momento sbagliato, "No much result available" fa sembrare che tastiera.next non abbia nulla da ritornare.
    Prova a leggere il file in altro modo, con un readLine di un BufferedReader.

    sennò, invece di

    tastiera.next();

    prova ad usare

    tastiera.nextLine();

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    122
    grazi...questo prob l'ho risolto...
    ho un altro problema però...
    non mi funziona questa: prova.findInLine("nome: (\\w+) cognome: (\\w+) via: (\\w+) citta: (\\w+) casa: (\\w+) uff: (\\w+)");

    prova è un oggetto Scanner al quale gli ho passato una riga letta dal file...
    se la stampo la riga me la stampa tranquillamente.

    se al posto di prova gli mette una variabile stringa funziona...

    sto impazzendo!!!grazie in anticipo

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    non funziona? da errori o cos'altro?
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    122
    mi lancia l'eccezione IllegalStateException...questo se come stringa inserisco la riga letta dal file...
    altrimenti se la stringa la creo io non me lo fa e funziona tutto...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.