Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20

    [Java]String tokenizer: delucidazioni

    Avrei una domanda sullo StringTokenizer.
    Se io creo una stringa stk del tipo StringTokenizer stk = new String(Stringa x , String delim);
    ed io volessi assegnare come delimitatore non solo il carattere spazio, ma anche il carattere virgola, come lo devo scrivere?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ciao. L'uso di StringTokenizer è "scoraggiato" nei nuovo codice (la classe è stata mantenuta per retro-compatibilità): puoi utilizzare al suo posto "split" di String. Se vuoi che la stringa sia divisa sia in caso di spazio che in caso di virgola, la regex potrebbe essere qualcosa del genere

    (,|\s)

    Ossia andrai a fare qualcosa del genere
    codice:
    String[] tokens = tuaStringa.split("(,|\s)");
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20

    Altra domanda riguardo le classi

    purtroppo io devo seguire il mio libro...
    xò non usa questo nuovo comando.
    Non sai aiutarmi utilizzando il vetusto Tokenizer?

    Alla fine voglio capire... nella stringa Delim come devo scrivere x far si che contenga il carattere spazio ed il carattere virgola?

    ------------------------------------------------------------------------------------

    Già che ci sono ti chiedo un'altra cosa..
    io devo creare una classe modellaRegistri che deve implementare l'interfaccia Register.
    Ora, prima di tutto i registri considerati sono quelli utilizzati nel linguaggio macchina, assembler, che io ho nominato A e B x gli input, S per gli output.
    Ora, l'interfaccia Register ha i seguenti metodi:

    codice:
    public int read();
    // legge il valore contenuto nel registro e ritorna intero
    public void reset();
    //azzera valore del registro
    public void write(int dato);
    //scrive nel registro il valore specificato nell'argomento
    
    
    dunque
    
    public class modellaRegistri implements Register
    {
      //devo implementare i metodi dell'interfaccia..
      public int read()
      {
       //come faccio a riferirmi all'oggetto che esegue il metodo? io vorrei fare
       int x = valoreRegistro;
       return x;
      }
    
      public void reset()
      {
       valoreRegistro=0;
      }
    
      public void write(int dato)
      {
       valoreRegistro=dato;
       }
    }
    sai aiutarmi?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Per quanto riguarda delim: se vuoi che lo spezzettamento avvenga a virgola o spazio o entrambi
    il tuo delim sarà

    codice:
    String delim = ", ";
    Es:
    codice:
    import java.util.*;
    
    public class StringTokens {
      public static void main (String[] args) {
        String myString = "Questa,è una stringa, di test";
        StringTokenizer st = new StringTokenizer(myString, ", ");
        
        while (st.hasMoreTokens()) {
          System.out.println(st.nextToken());
        }    
      }
    }

    Per quanto riguarda l'altra domanda... ti riferisci all'istanza dell'oggetto nella classe oggetto con la parola chiave this. Puoi anche ometterla.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20
    eh ma se la ometto, x dire il primo metodo read, come diavolo faccio a scriverlo? non ho nulla da scriverci dentro

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    eh?
    Facciamo le cose per benino che sicuramente dall'esempio capisci meglio (son proprio 4 righe di codice)

    codice:
    public class modellaRegistri implements Register {
     
      private int valoreRegistro;
     
      //costruttori
      public modellaRegistri(int valoreRegistro) {
        this.valoreRegistro = valoreRegistro;
      }
      
      public modellaRegistri() {
        this(0);
      }
    
      //devo implementare i metodi dell'interfaccia..
      public int read()  {
       return this.valoreRegistro;
      }
    
      public void reset() {
        this.valoreRegistro=0;
      }
    
      public void write(int dato) {
        this.valoreRegistro=dato;
       }
    }
    i vari "this" nei metodi potevo ometterli.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Andrea1979
    Ciao. L'uso di StringTokenizer è "scoraggiato" nei nuovo codice (la classe è stata mantenuta per retro-compatibilità):
    E dove sarebbe scritto che ne è scoraggiato l'utilizzo???

    Originariamente inviato da Andrea1979
    (,|\s)

    Ossia andrai a fare qualcosa del genere
    codice:
    String[] tokens = tuaStringa.split("(,|\s)");
    Semmai ",|\\s", con escape del \ e poi non serve un capturing-group.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da andbin
    E dove sarebbe scritto che ne è scoraggiato l'utilizzo???
    Se l'inglese non è un opinione:

    http://java.sun.com/j2se/1.5.0/docs/...Tokenizer.html

    dopo l'esempio di split.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Andrea1979
    Se l'inglese non è un opinione:

    http://java.sun.com/j2se/1.5.0/docs/...Tokenizer.html

    dopo l'esempio di split.
    sorry ... m'era sfuggito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.