Package fi.jyu.mit.ohj2
Class Erottelija
- java.lang.Object
-
- fi.jyu.mit.ohj2.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 puolellaboolean
isDelimBefore(int pos)
Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolellaboolean
isDelimBefore(int pos, java.lang.String delim)
Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolelladouble
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 jonostadouble
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ä
-
-
-
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 erotellaandelim
- 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äändelim
- 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äändelim
- 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 tutkitaandelim
- 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 erotetaandef
- 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 erotetaandef
- 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 erotetaandef
- 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 interfacejava.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 interfacejava.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;
-
-