public class Erottelija extends Object implements Enumeration<String>
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
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 and Description |
---|
Erottelija(String str)
Luodaan erottelija, joka erottelee jonosta str palasia välilyönnin
kohdalta.
|
Erottelija(String str,
String delim)
Luodaan erottelija, joka erottelee jonosta str palasia minkä tahansa
joukosta delim löytyvän merkin kohdalta.
|
Modifier and Type | Method and 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(String str,
String delim)
Etsitään mistä kohti jonosta str löytyy ensimmäinen erotinmerkki
joukosta delim.
|
static int |
indexOfAny(String str,
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,
String delim)
Tarkistaa onko erotinmerkkiä juuri paikan vasemmalla puolella
|
double |
nextDouble()
Palauttaa jonosta seuraavan reaaliluvun ja 0.0 jos luku ei ole
kunnollinen.
|
String |
nextElement()
Palauttaa seuraavan palasen Objectina.
|
int |
nextInt()
Palauttaa jonosta seuraavan kokonaisluvun ja 0 jos luku ei ole
kunnollinen.
|
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.
|
String |
nextToken(String delim)
Palauttaa seuraavan palasen jonosta.
|
double |
nextToken(String delim,
double def)
Palauttaa jonosta seuraavan reaaliluvun ja oletuksen jos luku ei ole
kunnollinen.
|
int |
nextToken(String delim,
int def)
Palauttaa jonosta seuraavan kokonaisluvun ja oletuksen jos luku ei ole
kunnollinen.
|
String |
nextToken(String delim,
String def)
Ottaa seuraavan palasen ja jos se on tyhjä, niin palauttaa def-jonon.
|
void |
reset()
Palauttaa paikan erottelijan alkuun.
|
String |
rest()
Palauttaa jäljellä olevan jonon.
|
void |
trim()
Siivoaa palasteltavan jonon turhista välilyönneistä
|
public Erottelija(String str, String delim)
str
- jono josta erotellaandelim
- erottavien merkkien joukko//01234 Erottelija erottaja = new Erottelija("a b "," "); erottaja.countTokens() === 3; erottaja = new Erottelija("a b ",","); erottaja.countTokens() === 1;
public Erottelija(String str)
str
- jono josta erotellaan//01234 Erottelija erottaja = new Erottelija("a b "); erottaja.countTokens() === 3;
public static int indexOfAny(String str, String delim, int pos)
str
- mistä jonosta etsitäändelim
- joukko erotinmerkkejäpos
- paikka josta aloitetaanindexOfAny("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
public static int indexOfAny(String str, String delim)
str
- mistä jonosta etsitäändelim
- joukko erotinmerkkejäindexOfAny("a;, b",",; ") === 1
public String nextToken()
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 | ""
public boolean isDelimBefore(int pos, String delim)
pos
- paikka josta tutkitaandelim
- kelpaavat erotinmerkit//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;
public boolean isDelimBefore(int pos)
pos
- paikka josta tutkitaan//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;
public boolean isDelimBefore()
//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;
public String nextToken(String delim)
delim
- erotinjoukko, jonka perusteella perusteella erotetaanErottelija 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";
public String nextToken(String delim, String def)
delim
- erotinjoukko, jonka perusteella perusteella erotetaandef
- oletusarvo jos seuraava palanen on tyhjäErottelija erottaja = new Erottelija("a b;c"); erottaja.nextToken(" ","d") === "a"; erottaja.nextToken(" ","d") === "b;c"; erottaja.nextToken(" ","d") === "d";
public int nextToken(String delim, int def)
delim
- erotinjoukko, jonka perusteella perusteella erotetaandef
- oletusarvo jos luku ei ole kunnollinenErottelija erottaja = new Erottelija("1;2"); erottaja.nextToken(";",3) === 1; erottaja.nextToken(";",3) === 2; erottaja.nextToken(";",3) === 3;
public int nextToken(int def)
def
- oletusarvo jos luku ei ole kunnollinenErottelija erottaja = new Erottelija("1 2"); erottaja.nextToken(3) === 1; erottaja.nextToken(3) === 2; erottaja.nextToken(3) === 3;
public int nextInt()
Erottelija erottaja = new Erottelija("1 2"); erottaja.nextInt() === 1; erottaja.nextInt() === 2; erottaja.nextInt() === 0;
public double nextToken(String delim, double def)
delim
- erotinjoukko, jonka perusteella perusteella erotetaandef
- oletusarvo jos luku ei ole kunnollinenErottelija erottaja = new Erottelija("1;2"); erottaja.nextToken(";",3.1) ~~~ 1.0; erottaja.nextToken(";",3.1) ~~~ 2.0; erottaja.nextToken(";",3.1) ~~~ 3.1;
public double nextToken(double def)
def
- oletusarvo jos luku ei ole kunnollinenErottelija erottaja = new Erottelija("1 2"); erottaja.nextToken(3.1) ~~~ 1.0; erottaja.nextToken(3.1) ~~~ 2.0; erottaja.nextToken(3.1) ~~~ 3.1;
public double nextDouble()
Erottelija erottaja = new Erottelija("1 2"); erottaja.nextDouble() ~~~ 1.0; erottaja.nextDouble() ~~~ 2.0; erottaja.nextDouble() ~~~ 0.0;
public int countTokens(int pos)
pos
- paikka josta laskeminen aloitetaanErottelija 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;
public int countTokens()
Erottelija erottaja = new Erottelija("1 2"); erottaja.countTokens() === 2;
public int countRemainingTokens()
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;
public boolean hasMoreElements()
hasMoreElements
in interface Enumeration<String>
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;
public boolean hasMoreTokens()
Erottelija erottaja = new Erottelija("1 2"); erottaja.hasMoreTokens() === true; erottaja.nextDouble() ~~~ 1.0; erottaja.nextDouble() ~~~ 2.0; erottaja.hasMoreTokens() === false; erottaja.nextDouble() ~~~ 0.0;
public String nextElement()
nextElement
in interface Enumeration<String>
Erottelija erottaja = new Erottelija("1 2"); erottaja.nextElement() === "1"; erottaja.nextElement() === "2"; erottaja.nextElement() === "";
public void trim()
Erottelija erottaja = new Erottelija(" 1 2 "); erottaja.countTokens() === 6; erottaja.trim(); erottaja.countTokens() === 4;
public String rest()
Erottelija erottaja = new Erottelija(" 1 2 "); erottaja.trim(); erottaja.rest() === " 1 2 ";
public void reset()
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;