Class Erottelija

  • All Implemented Interfaces:
    java.util.Enumeration<java.lang.String>

    public class Erottelija
    extends java.lang.Object
    implements java.util.Enumeration<java.lang.String>
    Luokka StringTokenizerin korvaajaksi. Erona on se että jonon loppuessa ei tule ongelmia ja peräkkäisten erottimien välistä tulee tyhjä jono.
     Esimerkki:
     public static void main(String[] args) {
         Erottelija erottaja = new Erottelija("12;3.5:kissa,,,istuu puussa,3.4",
                                              ";:,");
         System.out.println("Palasia: " + erottaja.countTokens());
         for (int i=1; erottaja.hasMoreTokens(); i++ )
           System.out.println(i + ": |" + erottaja.nextToken()+"|");
         System.err.println("8: |"+erottaja.nextToken()+"|");
         erottaja.reset();
         System.out.println(erottaja.nextToken(0));
         System.out.println(erottaja.countRemaininTokens());
         System.out.println(erottaja.rest());
         System.out.println(erottaja.nextToken(0.0));
         System.out.println(erottaja.nextToken(2));
         System.out.println(erottaja.nextToken(2.1));
         System.out.println(erottaja.countRemainingTokens());
         System.out.println(erottaja.rest());
       }
    
     Tulostaa:
     
     Palasia: 7
     1: |12|
     2: |3.5|
     3: |kissa|
     4: ||
     5: ||
     6: |istuu puussa|
     7: |3.4|
     8: ||
     12
     6
     3.5:kissa,,,istuu puussa,3.4
     3
     ,istuu puussa,3.4
     12
     3.5
     2
     2.1
     
    Version:
    11.3.2007
    Author:
    vesal
    Example:
     Erottelija erottaja = new Erottelija("12;3.5:kissa,,,istuu puussa,3.4",";:,");
     erottaja.nextToken() === $s; erottaja.hasMoreTokens() === $tokens;
     erottaja.countRemainingTokens() === $n; erottaja.rest() === $rest;   
     
       $i  |  $s             | $tokens | $n | $rest
      --------------------------------------------------------------------------  
       0   | ---             | true    | 7  | "12;3.5:kissa,,,istuu puussa,3.4"
       1   | "12"            | true    | 6  | "3.5:kissa,,,istuu puussa,3.4"
       2   | "3.5"           | true    | 5  | "kissa,,,istuu puussa,3.4"
       3   | "kissa"         | true    | 4  | ",,istuu puussa,3.4"
       4   | ""              | true    | 3  | ",istuu puussa,3.4"
       5   | ""              | true    | 2  | "istuu puussa,3.4"
       6   | "istuu puussa"  | true    | 1  | "3.4"
       7   | "3.4"           | false   | 0  | ""
       8   | ""              | false   | 0  | ""
       9   | ""              | false   | 0  | ""
       
       erottaja.nextToken(";","kissa") === "kissa";, 
     Erottelija erottaja = new Erottelija("12;3.5:kissa,,,istuu puussa,3.4;;",";:,");
     erottaja.nextToken() === $s; erottaja.hasMoreTokens() === $tokens;
     erottaja.countRemainingTokens() === $n; erottaja.rest() === $rest;   
     
       $i  |  $s             | $tokens | $n | $rest
      --------------------------------------------------------------------------  
       0   | ---             | true    | 9  | "12;3.5:kissa,,,istuu puussa,3.4;;"
       1   | "12"            | true    | 8  | "3.5:kissa,,,istuu puussa,3.4;;"
       2   | "3.5"           | true    | 7  | "kissa,,,istuu puussa,3.4;;"
       3   | "kissa"         | true    | 6  | ",,istuu puussa,3.4;;"
       4   | ""              | true    | 5  | ",istuu puussa,3.4;;"
       5   | ""              | true    | 4  | "istuu puussa,3.4;;"
       6   | "istuu puussa"  | true    | 3  | "3.4;;"
       7   | "3.4"           | true    | 2  | ";"
       8   | ""              | true    | 1  | ""
       9   | ""              | false   | 0  | ""
      10   | ""              | false   | 0  | ""
       
       erottaja.nextToken(";","kissa") === "kissa";
     
    • Constructor Summary

      Constructors 
      Constructor Description
      Erottelija​(java.lang.String str)
      Luodaan erottelija, joka erottelee jonosta str palasia välilyönnin kohdalta.
      Erottelija​(java.lang.String str, java.lang.String delim)
      Luodaan erottelija, joka erottelee jonosta str palasia minkä tahansa joukosta delim löytyvän merkin kohdalta.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int countRemainingTokens()
      Laskee palasten lukumäärän.
      int countTokens()
      Laskee palasten lukumäärän.
      int countTokens​(int pos)
      Laskee palasten lukumäärän.
      boolean hasMoreElements()
      Tarkistaa että vieläkö palasia on jäljellä.
      boolean hasMoreTokens()
      Tarkistaa että vieläkö palasia on jäljellä.
      static int indexOfAny​(java.lang.String str, java.lang.String delim)
      Etsitään mistä kohti jonosta str löytyy ensimmäinen erotinmerkki joukosta delim.
      static int indexOfAny​(java.lang.String str, java.lang.String delim, int pos)
      Etsitään mistä kohti jonosta str löytyy ensimmäinen erotinmerkki joukosta delim.
      boolean isDelimBefore()
      Tarkistaa onko erotinmerkkiä juuri nykypaikan vasemmalla puolella
      boolean isDelimBefore​(int pos)
      Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolella
      boolean isDelimBefore​(int pos, java.lang.String delim)
      Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolella
      double nextDouble()
      Palauttaa jonosta seuraavan reaaliluvun ja 0.0 jos luku ei ole kunnollinen.
      java.lang.String nextElement()
      Palauttaa seuraavan palasen Objectina.
      int nextInt()
      Palauttaa jonosta seuraavan kokonaisluvun ja 0 jos luku ei ole kunnollinen.
      java.lang.String nextToken()
      Palauttaa seuraavan palasen jonosta
      double nextToken​(double def)
      Palauttaa jonosta seuraavan reaaliluvun ja oletuksen jos luku ei ole kunnollinen.
      int nextToken​(int def)
      Palauttaa jonosta seuraavan kokonaisluvun ja oletuksen jos luku ei ole kunnollinen.
      java.lang.String nextToken​(java.lang.String delim)
      Palauttaa seuraavan palasen jonosta.
      double nextToken​(java.lang.String delim, double def)
      Palauttaa jonosta seuraavan reaaliluvun ja oletuksen jos luku ei ole kunnollinen.
      int nextToken​(java.lang.String delim, int def)
      Palauttaa jonosta seuraavan kokonaisluvun ja oletuksen jos luku ei ole kunnollinen.
      java.lang.String nextToken​(java.lang.String delim, java.lang.String def)
      Ottaa seuraavan palasen ja jos se on tyhjä, niin palauttaa def-jonon.
      void reset()
      Palauttaa paikan erottelijan alkuun.
      java.lang.String rest()
      Palauttaa jäljellä olevan jonon.
      void trim()
      Siivoaa palasteltavan jonon turhista välilyönneistä
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Enumeration

        asIterator
    • Constructor Detail

      • Erottelija

        public Erottelija​(java.lang.String str,
                          java.lang.String delim)
        Luodaan erottelija, joka erottelee jonosta str palasia minkä tahansa joukosta delim löytyvän merkin kohdalta.
        Parameters:
        str - jono josta erotellaan
        delim - erottavien merkkien joukko
        Example:
                                             //01234 
         Erottelija erottaja = new Erottelija("a b "," ");
         erottaja.countTokens() === 3;
         erottaja = new Erottelija("a b ",",");
         erottaja.countTokens() === 1;
         
      • Erottelija

        public Erottelija​(java.lang.String str)
        Luodaan erottelija, joka erottelee jonosta str palasia välilyönnin kohdalta.
        Parameters:
        str - jono josta erotellaan
        Example:
                                             //01234 
         Erottelija erottaja = new Erottelija("a b ");
         erottaja.countTokens() === 3;
         
    • Method Detail

      • indexOfAny

        public static int indexOfAny​(java.lang.String str,
                                     java.lang.String delim,
                                     int pos)
        Etsitään mistä kohti jonosta str löytyy ensimmäinen erotinmerkki joukosta delim. Etsintä aloitetaan paikasta pos.
        Parameters:
        str - mistä jonosta etsitään
        delim - joukko erotinmerkkejä
        pos - paikka josta aloitetaan
        Returns:
        palauttaa ensimmäisen esiintymän tai -1 jos ei löydy
        Example:
           indexOfAny("a;, b",",; ",0) === 1
           indexOfAny("a;, b",",; ",2) === 2
           indexOfAny("a;, b"," ",0)   === 3
           indexOfAny("a;, b",".",0)   === -1
           indexOfAny(null,",; ",0)    === -1
           indexOfAny("a b",",; ",-1)  === 1
         
      • indexOfAny

        public static int indexOfAny​(java.lang.String str,
                                     java.lang.String delim)
        Etsitään mistä kohti jonosta str löytyy ensimmäinen erotinmerkki joukosta delim. Etsintä aloitetaan alusta.
        Parameters:
        str - mistä jonosta etsitään
        delim - joukko erotinmerkkejä
        Returns:
        palauttaa ensimmäisen esiintymän tai -1 jos ei löydy
        Example:
           indexOfAny("a;, b",",; ") === 1
         
      • nextToken

        public java.lang.String nextToken()
        Palauttaa seuraavan palasen jonosta
        Returns:
        jonon seuraava palanen
        Example:
         Erottelija erottaja = new Erottelija("a;b;",";");
         erottaja.nextToken() === $s; erottaja.hasMoreTokens() === $tokens;
         erottaja.countRemainingTokens() === $n; erottaja.rest() === $rest;   
         
           $i  |  $s             | $tokens | $n | $rest
          --------------------------------------------------------------------------  
           0   | ---             | true    | 3  | "a;b;"
           1   | "a"             | true    | 2  | "b;"
           2   | "b"             | true    | 1  | ""
           3   | ""              | false   | 0  | ""
           4   | ""              | false   | 0  | ""
         
      • isDelimBefore

        public boolean isDelimBefore​(int pos,
                                     java.lang.String delim)
        Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolella
        Parameters:
        pos - paikka josta tutkitaan
        delim - kelpaavat erotinmerkit
        Returns:
        true jos on erotin merkki vasemmalla puolella, false muuten
        Example:
                                             //01234 
         Erottelija erottaja = new Erottelija("a;b;",";");
         erottaja.isDelimBefore(0,";") === false;
         erottaja.isDelimBefore(1,";") === false;
         erottaja.isDelimBefore(2,";") === true;
         erottaja.isDelimBefore(3,";") === false;
         erottaja.isDelimBefore(4,";") === true;
         erottaja.isDelimBefore(5,";") === false;
         
      • isDelimBefore

        public boolean isDelimBefore​(int pos)
        Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolella
        Parameters:
        pos - paikka josta tutkitaan
        Returns:
        true jos on erotin merkki vasemmalla puolella, false muuten
        Example:
                                             //01234 
         Erottelija erottaja = new Erottelija("a;b;",";");
         erottaja.isDelimBefore(0) === false;
         erottaja.isDelimBefore(1) === false;
         erottaja.isDelimBefore(2) === true;
         erottaja.isDelimBefore(3) === false;
         erottaja.isDelimBefore(4) === true;
         erottaja.isDelimBefore(5) === false;
         
      • isDelimBefore

        public boolean isDelimBefore()
        Tarkistaa onko erotinmerkkiä juuri nykypaikan vasemmalla puolella
        Returns:
        true jos on erotin merkki vasemmalla puolella, false muuten
        Example:
                                             //01234 
         Erottelija erottaja = new Erottelija("a;b;",";");
                                       erottaja.isDelimBefore() === false;
         erottaja.nextToken() === "a"; erottaja.isDelimBefore() === true;
         erottaja.nextToken() === "b"; erottaja.isDelimBefore() === true;
         erottaja.nextToken() === "";  erottaja.isDelimBefore() === false;
         erottaja.nextToken() === "";  erottaja.isDelimBefore() === false;
         
      • nextToken

        public java.lang.String nextToken​(java.lang.String delim)
        Palauttaa seuraavan palasen jonosta.
        Parameters:
        delim - erotinjoukko, jonka perusteella perusteella erotetaan
        Returns:
        jonon seuraava palanen
        Example:
           Erottelija erottaja = new Erottelija("a b;c");
           erottaja.nextToken(" ") === "a";
           erottaja.nextToken(" ") === "b;c";
           erottaja = new Erottelija("a b;c");
           erottaja.nextToken(" ") === "a";
           erottaja.nextToken(";") === "b";
           erottaja.nextToken(" ") === "c";
           erottaja.nextToken(" ") === "";
           erottaja = new Erottelija(null);
           erottaja.nextToken(" ") === "";
           erottaja = new Erottelija("a b");
           erottaja.nextToken(null) === "a";
         
      • nextToken

        public java.lang.String nextToken​(java.lang.String delim,
                                          java.lang.String def)
        Ottaa seuraavan palasen ja jos se on tyhjä, niin palauttaa def-jonon.
        Parameters:
        delim - erotinjoukko, jonka perusteella perusteella erotetaan
        def - oletusarvo jos seuraava palanen on tyhjä
        Returns:
        jonon seuraava palanen tai oletus
        Example:
           Erottelija erottaja = new Erottelija("a b;c");
           erottaja.nextToken(" ","d") === "a";
           erottaja.nextToken(" ","d") === "b;c";
           erottaja.nextToken(" ","d") === "d";
         
      • nextToken

        public int nextToken​(java.lang.String delim,
                             int def)
        Palauttaa jonosta seuraavan kokonaisluvun ja oletuksen jos luku ei ole kunnollinen.
        Parameters:
        delim - erotinjoukko, jonka perusteella perusteella erotetaan
        def - oletusarvo jos luku ei ole kunnollinen
        Returns:
        seuraava kokonaisluku tai oletus
        Example:
           Erottelija erottaja = new Erottelija("1;2");
           erottaja.nextToken(";",3) === 1; 
           erottaja.nextToken(";",3) === 2; 
           erottaja.nextToken(";",3) === 3; 
         
      • nextToken

        public int nextToken​(int def)
        Palauttaa jonosta seuraavan kokonaisluvun ja oletuksen jos luku ei ole kunnollinen.
        Parameters:
        def - oletusarvo jos luku ei ole kunnollinen
        Returns:
        seuraava kokonaisluku tai oletus
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.nextToken(3) === 1; 
           erottaja.nextToken(3) === 2; 
           erottaja.nextToken(3) === 3; 
         
      • nextInt

        public int nextInt()
        Palauttaa jonosta seuraavan kokonaisluvun ja 0 jos luku ei ole kunnollinen.
        Returns:
        seuraava kokonaisluku tai 0
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.nextInt() === 1; 
           erottaja.nextInt() === 2; 
           erottaja.nextInt() === 0; 
         
      • nextToken

        public double nextToken​(java.lang.String delim,
                                double def)
        Palauttaa jonosta seuraavan reaaliluvun ja oletuksen jos luku ei ole kunnollinen.
        Parameters:
        delim - erotinjoukko, jonka perusteella perusteella erotetaan
        def - oletusarvo jos luku ei ole kunnollinen
        Returns:
        seuraava reaaliluku tai oletus
        Example:
           Erottelija erottaja = new Erottelija("1;2");
           erottaja.nextToken(";",3.1) ~~~ 1.0; 
           erottaja.nextToken(";",3.1) ~~~ 2.0; 
           erottaja.nextToken(";",3.1) ~~~ 3.1; 
         
      • nextToken

        public double nextToken​(double def)
        Palauttaa jonosta seuraavan reaaliluvun ja oletuksen jos luku ei ole kunnollinen.
        Parameters:
        def - oletusarvo jos luku ei ole kunnollinen
        Returns:
        seuraava reaaliluku tai oletus
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.nextToken(3.1) ~~~ 1.0; 
           erottaja.nextToken(3.1) ~~~ 2.0; 
           erottaja.nextToken(3.1) ~~~ 3.1; 
         
      • nextDouble

        public double nextDouble()
        Palauttaa jonosta seuraavan reaaliluvun ja 0.0 jos luku ei ole kunnollinen.
        Returns:
        seuraava reaaliluku tai 0.0
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.nextDouble() ~~~ 1.0; 
           erottaja.nextDouble() ~~~ 2.0; 
           erottaja.nextDouble() ~~~ 0.0; 
         
      • countTokens

        public int countTokens​(int pos)
        Laskee palasten lukumäärän.
        Parameters:
        pos - paikka josta laskeminen aloitetaan
        Returns:
        palasten lukumäärä.
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.countTokens(0) === 2; 
           erottaja.countTokens(2) === 1; 
           erottaja = new Erottelija("1");
           erottaja.countTokens(0) === 1; 
           erottaja.countTokens(1) === 0; 
         
      • countTokens

        public int countTokens()
        Laskee palasten lukumäärän.
        Returns:
        palasten lukumäärä.
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.countTokens() === 2; 
         
      • countRemainingTokens

        public int countRemainingTokens()
        Laskee palasten lukumäärän.
        Returns:
        palasten lukumäärä.
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.countRemainingTokens() === 2;
           erottaja.nextDouble() ~~~ 1.0; 
           erottaja.countRemainingTokens() === 1;
           erottaja.nextDouble() ~~~ 2.0; 
           erottaja.countRemainingTokens() === 0;
           erottaja.nextDouble() ~~~ 0.0; 
         
      • hasMoreElements

        public boolean hasMoreElements()
        Tarkistaa että vieläkö palasia on jäljellä.
        Specified by:
        hasMoreElements in interface java.util.Enumeration<java.lang.String>
        Returns:
        onko palasia jäljellä
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.hasMoreElements() === true;
           erottaja.nextDouble() ~~~ 1.0; 
           erottaja.hasMoreElements() === true;
           erottaja.nextDouble() ~~~ 2.0; 
           erottaja.hasMoreElements() === false;
           erottaja.nextDouble() ~~~ 0.0; 
         
      • hasMoreTokens

        public boolean hasMoreTokens()
        Tarkistaa että vieläkö palasia on jäljellä.
        Returns:
        onko palasia jäljellä
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.hasMoreTokens() === true;
           erottaja.nextDouble() ~~~ 1.0; 
           erottaja.nextDouble() ~~~ 2.0; 
           erottaja.hasMoreTokens() === false;
           erottaja.nextDouble() ~~~ 0.0; 
         
      • nextElement

        public java.lang.String nextElement()
        Palauttaa seuraavan palasen Objectina.
        Specified by:
        nextElement in interface java.util.Enumeration<java.lang.String>
        Returns:
        seuraava palanen
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.nextElement() === "1";
           erottaja.nextElement() === "2";
           erottaja.nextElement() === "";
         
      • trim

        public void trim()
        Siivoaa palasteltavan jonon turhista välilyönneistä
        Example:
           Erottelija erottaja = new Erottelija(" 1   2 ");
           erottaja.countTokens() === 6;
           erottaja.trim();
           erottaja.countTokens() === 4;
         
      • rest

        public java.lang.String rest()
        Palauttaa jäljellä olevan jonon.
        Returns:
        jäljellä oleva jono.
        Example:
           Erottelija erottaja = new Erottelija(" 1   2 ");
           erottaja.trim();
           erottaja.rest() === " 1 2 ";
         
      • reset

        public void reset()
        Palauttaa paikan erottelijan alkuun.
        Example:
           Erottelija erottaja = new Erottelija("1 2");
           erottaja.nextDouble() ~~~ 1.0; 
           erottaja.nextDouble() ~~~ 2.0; 
           erottaja.nextDouble() ~~~ 0.0;
           erottaja.reset(); 
           erottaja.nextDouble() ~~~ 1.0; 
           erottaja.reset(); 
           erottaja.nextDouble() ~~~ 1.0;