Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Java 6] StringTokenizer - errore di esecuzione

    Premetto che sono una principiante di Java, lo sto giusto studiando!

    Ho un problema nell'esecuzione di un programma. Sebbene la compilazione di tutte le classi non dia errori, al momento dell'esecuzione del programma, mi appare il seguente messaggio di errore.
    Exception in thread "main" java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(Unknow source)
    at Persona.<init>(Persona.java:24)
    at
    ....
    Mi pare di aver capito che il problema sia dovuto ad una non compatibilità con la classe StringTokenizer con la versione 6 di Java, che ho appena installato. Dovendo utilizzare però questa classe per la realizzazione del programma per il mio esame di informatica, come posso fare? !

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    come speri che si possa aiutarti senza vedere il codice.
    Per inciso, sono ANNI che alla sun suggeriscono di "migrare" verso le regex ed abbandonare StringTokenizer...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Non sono stata a postare il codice, perché ho pensato che il problema fosse proprio quello della classe StringTokenizer, non delle mie classi.
    Comunque, questa è quella dove StringTokenizer è richiamata.

    import java.util.StringTokenizer;

    public class Persona {
    private String nome, cognome; //dichiaro le variabili della classe

    public Persona(String cognome, String nome) {
    this.cognome=cognome;
    this.nome=nome;
    }

    public Persona(String str) {
    StringTokenizer st = new StringTokenizer("str", " ");
    this.cognome=st.nextToken();
    this.nome=st.nextToken();
    }

    public int compareTo(Persona altro) {
    int ris = this.cognome.compareTo(altro.cognome);
    if (ris!=0) {
    return ris;
    } else {
    return this.nome.compareTo(altro.nome);
    }
    }

    public boolean equals(Persona altro) {
    return this.compareTo(altro) == 0;
    }


    public String getCognome() {
    return cognome;
    }
    public String getNome() {
    return nome;
    }
    public String toString() {
    return "Cognome: "+ cognome + "\n" + "Nome: " + nome;
    }
    }

    Originariamente inviato da Andrea1979
    Per inciso, sono ANNI che alla sun suggeriscono di "migrare" verso le regex ed abbandonare StringTokenizer...
    Mi rendo conto, però questo è quello che devo fare...e volevo solo sapere se è appunto questo il problema e se, per far funzionare correttamente il mio programma, sono obbligata a disintallare la versione 6 e tornare alla 5

  4. #4
    StringTokenizer st = new StringTokenizer("str", " ");

    E' qui il problema...se passi al costruttore di StringTokenizer la stringa str tra doppi apici, non funzionerà mai

    Lui cerca di scomporre la stringa "str", non il contenuto dell'oggetto stringa str

    Ciao

  5. #5
    Originariamente inviato da darkshout
    StringTokenizer st = new StringTokenizer("str", " ");

    E' qui il problema...se passi al costruttore di StringTokenizer la stringa str tra doppi apici, non funzionerà mai

    Lui cerca di scomporre la stringa "str", non il contenuto dell'oggetto stringa str

    Ciao
    Hai ragione!
    Però ho corretto, salvato e ricompilato...ma mi continua a dare lo stesso errore nell'esecuzione della classe principale :master:

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Cancella i file .class e prova a ricompilare tutto

    a me questo compila e gira
    codice:
    import java.util.*;
    /**
     *
     * @author Andrea
     */
    public class StringTokenizerTest {
        
        public static void main (String[] args) {
            String str = "Andrea 1979";
            StringTokenizer st = new StringTokenizer(str, " ");
            String nome = st.nextToken();
            String cognome = st.nextToken();
            System.out.println(nome + "\t" + cognome);
        }
        
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Uhm ho provato a cancellare i class, ma non è cambiato nulla

    Però, la tua classe di prova sono riuscita a compilarla ed eseguirla Non riesco a capire...eppure sono classi che avevo già scritto in laboratorio, ed andavano...ci devo dormire sopra!

  8. #8
    Controlla bene quali parametri passi al costruttore nella classe da cui richiami questa... è li al 99% il problema...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.