logo

Java StreamTokenizer -luokka – sarja 1

Javassa StreamTokenizer luokka on läsnä java.io paketti . Sitä käytetään syöttövirran jäsentämiseen jakamalla se pieniksi paloiksi, jotka tunnetaan nimellä rahakkeita nämä tunnukset helpottavat käsittelyä. Tunnus voi olla sana, numero tai mikä tahansa tietty symboli. Stream Tokenizer pystyy tunnistamaan lainausmerkkijonot ja erilaiset kommenttityypit.

StreamTokenizer-luokan ominaisuudet:

StreamTokenizer-luokan tärkeimmät ominaisuudet on lueteltu alla:



  • Se jakaa syöttövirrat symboleiksi, kuten symboleiksi sanoiksi ja numeroiksi.
  • Se tukee rivinumeroiden seurantaa.
  • Se voi käsitellä rivin lopun merkkejä rahakkeina.
  • Se voi myös muuntaa sanat automaattisesti pieniksi kirjaimiksi.

StreamTokenizer-luokan ilmoitus

StreamTokenizer-luokan ilmoitus on:

julkinen luokka StreamTokenenizer laajentaa Object toteuttaa Serialisoitavaa

Huomautus: Se laajentaa Objectia ja toteuttaa Serializable.

StreamTokenizer-luokan rakentajat

Tämä luokka koostuu kahdesta konstruktorista, joiden avulla voimme luoda tämän luokan objekteja eri tavoin. Tässä luokassa saatavilla olevat rakentajat:

1. StreamTokenizer (InputStream on): Tämä rakentaja on poistettu käytöstä . Se on vanhempi tapa luoda tokenisaattori suoraan tavuvirrasta.

Syntaksi:

StreamTokenizer (InputStream on)

Huomautus: Tätä ei suositella, koska se toimii tavuilla, ei merkeillä.

2. StreamTokenizer (Reader r): Tämä on paras tapa luoda tokenizer, joka käyttää merkkivirtaa, joka käsittelee tekstin oikein.

Syntaksi:

StreamTokenizer (Reader r)

Esimerkki:

Java
// Demonstrating the working  // of StreamTokenizer(Reader r)  import java.io.*; public class Geeks {    public static void main(String[] args) throws IOException {    Reader r = new StringReader('Hello 123');  StreamTokenizer t = new StreamTokenizer(r);     int token;  while ((token = t.nextToken()) != StreamTokenizer.TT_EOF) {  if (token == StreamTokenizer.TT_WORD) {  System.out.println('Word: ' + t.sval);  } else if (token == StreamTokenizer.TT_NUMBER) {  System.out.println('Number: ' + t.nval);  }  }  } } 

Lähtö
Word: Hello Number: 123.0 


Java StreamTokenizer -menetelmät

Alla oleva taulukko esittää tämän luokan menetelmät.

MenetelmäKuvaus
kommenttimerkki()Määrittää, että merkki ch aloittaa yksirivisen kommentin. Kaikki merkit kommenttimerkistä rivin loppuun ohitetaan.
linja()Palauttaa syöttövirran nykyisen rivinumeron.
toString()Palauttaa nykyisen stream-tunnuksen ja sen esiintyvän rivinumeron merkkijonoesityksen.

eolIsSignificant (boolen lippu)

Määrittää, käsitelläänkö rivin lopun merkkejä merkittävinä tunnuksina. Jos todelliset rivin lopun merkit palautetaan tunnuksina.

tavallinen merkki (int ch)Määrittää, että merkkiä ch käsitellään tavallisena merkkinä, ei sananumerona tai kommenttimerkkinä.
nextToken()Jäsentää seuraavan tunnuksen syöttövirrasta ja palauttaa sen tyypin.
SmallCaseMode()Määrittää, muunnetaanko sanamerkit automaattisesti pieniksi kirjaimiksi.
tavallinen merkki()Määrittää, että merkkiä ch käsitellään tavallisena merkkinä.
tavalliset merkit()Määrittää, että kaikkia merkkejä alueella matalasta korkeaan käsitellään tavallisina merkeinä.


Nyt aiomme keskustella jokaisesta menetelmästä yksitellen yksityiskohtaisesti:


e r malliesimerkkejä

1. kommenttiChar(): Tätä menetelmää käytetään merkin määrittämiseen ch joka alkaa yhden rivin kommentista ja StreamTokenizer ei tunnista kaikkia merkkejä tästä merkistä rivin loppuun.

Syntaksi:

public void comment Char(int ch)

  • Parametri: Tämä menetelmä ottaa yhden kokonaisluvun arvon ch sen jälkeen kaikki hahmot jätetään huomiotta
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.

Esimerkki:

Java
// Demonstrating the working of commentChar() method import java.io.*; public class Geeks {  public static void main(String[] args) throws IOException {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  // Use of commentChar() method  token.commentChar('a');   int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF) {  switch (t) {  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Word : Programmers  
Number : 1.0
Number : 2.0
Number : 3.0
Word : Geeks
Word : Hello
Word : a
Word : Program
Word : is
Word : explained
Word : here
Word : my
Word : friends.

Huomautus: Tämä ohjelma ei toimi onnistuneesti, koska tiedostoa "ABC.txt" ei ole olemassa. Jos haluamme testata koodia järjestelmässä, meidän on vain luotava tiedostonimi ABC.txt.

Luo ABC.txt-tiedosto, jossa on alla lueteltu seuraava sisältö:

Ohjelmoijat 1 2 3 0.00 / 0 Geeks Hello a Ohjelma selitetään täällä ystäväni.


2. rivi(): Tämä menetelmä palauttaa nykyisen rivinumeron, jonka StreamTokenizer käsittelee. Tämä menetelmä on erittäin hyödyllinen, kun haluamme tarkistaa, miten käsittely toimii, debug-ohjelma ja voimme myös seurata rivinumeroita tokenoinnin aikana.

Syntaksi:

julkinen liinavaatteet()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Palautustyyppi: Tämä menetelmä palauttaa int-arvon nykyisen tulovirran rivinumeron.

Esimerkki:

Java
// Demonstrating the use of lineno() method import java.io.*; public class Geeks {  public static void main(String[] args) throws InterruptedException   FileNotFoundException IOException  {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);    token.eolIsSignificant(true);  // Use of lineno() method   // to get current line no.  System.out.println('Line Number:' + token.lineno());  token.commentChar('a');  int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)  {  switch (t)  {  case StreamTokenizer.TT_EOL:  System.out.println('');  System.out.println('Line No. : ' + token.lineno());  break;  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Line Number:1  
Word : Progr

Line No. : 2
Number : 1.0

Line No. : 3
Number : 2.0

Line No. : 4
Number : 3.0

Line No. : 5
Word : Geeks

Line No. : 6
Word : Hello

Line No. : 7
Word : This
Word : is


3. toString(): Tämä menetelmä palauttaa merkkijonon, joka edustaa nykyistä stream-tunnusta merkin arvon ja rivinumeron kanssa, jota se parhaillaan käyttää.

Syntaksi:

julkinen merkkijono toString()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Palautustyyppi: Tämä menetelmä palauttaa merkkijonoarvon, joka edustaa nykyistä stream-tunnusta rivinumerolla.

Esimerkki:

Java
// Demonstrating the use of toString() method import java.io.*; public class Geeks {  public static void main(String[] args) throws IOException {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF) {  switch (t) {  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.toString());   break;  }  }  } } 

Lähtö:

Word : Token[Programmers] line 1  
Number : 1.0
Number : 2.0
Number : 3.0
Word : Token[Geeks] line 5
Word : Token[Hello] line 6
Word : Token[a] line 7
Word : Token[Program] line 7
Word : Token[is] line 7
Word : Token[explained] line 7
Word : Token[here] line 7
Word : Token[my] line 7
Word : Token[friends.] line 7


4. eolIsSignificant(): Tämä menetelmä ei palauta mitään, mutta sitä käytetään tarkistamaan, pitäisikö EOL (End of Line) -merkki tokenisoida. Jos lippu on tosi, kutakin rivin lopun merkkiä käsitellään tunnuksena ja sille määritetään merkkityyppi TT_EOL, jonka eol-merkkiä ei huomioida, käsitellään välilyöntinä.

Syntaksi:

julkinen void eolOnSignificant(boolen lippu)

  • Parametri: Tämä menetelmä ottaa loogisen arvon lippu jos se on tosi, rivin loppua käsitellään merkkinä tai jätetään huomiotta välilyöntinä.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.

Esimerkki:

npm välimuistin tyhjennysvoima
Java
// Demonstrating the use of eolIsSignificant() method import java.io.*; public class Geeks {  public static void main(String[] args) throws InterruptedException  FileNotFoundException IOException  {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  boolean arg = true;  // Use of eolIsSignificant() method  token.eolIsSignificant(arg);  // Here the 'arg' is set true so EOL is treated as a token  int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)  {  switch (t)  {  case StreamTokenizer.TT_EOL:  System.out.println('End of Line encountered.');  break;  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Number : 1.0  
End of Line encountered.
Word : Geeks
End of Line encountered.
Number : 2.0
End of Line encountered.
Word : For
End of Line encountered.
Number : 3.0
End of Line encountered.
Word : Geeks

Huomautus: Tämä ohjelma ei toimi onnistuneesti, koska tiedostoa "ABC.txt" ei ole olemassa. Jos haluamme testata koodia järjestelmässä, meidän on vain luotava tiedostonimi ABC.txt.

Luo tiedosto ABC.txxt, jossa on alla lueteltu seuraava sisältö:

1 nörtti 2 3 nörttiä varten


5. nextToken(): Tämä menetelmä lukee seuraavan merkin syöttövirrasta ja palauttaa tyypin. Tunnusmerkin tyyppi on tallennettu ttyyppi ala. Se palauttaa tyypin kokonaislukuarvona, joka voi olla TT_WORD TT_NUMBER ja TT_EOL jne.

Syntaksi:

julkinen in nextToken()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Palautustyyppi: Tämä menetelmä palauttaa int tunnuksen tyypin arvo.

Esimerkki:

Java
// Demonstrating the use of nextToken() method import java.io.*; public class Geeks {  public static void main(String[] args) throws InterruptedException  FileNotFoundException IOException  {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  // Use of nextToken() method to parse Next Token from the Input Stream  int t = token.nextToken();  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)  {  switch (t)  {  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Word : This  
Word : program
Word : tells
Number : 2.0
Word : about
Word : use
Word : of
Number : 3.0
Word : next
Word : token
Word : method

Huomautus: Tämä ohjelma ei toimi onnistuneesti, koska tiedostoa "ABC.txt" ei ole olemassa. Jos haluamme testata koodia järjestelmässä, meidän on vain luotava tiedostonimi ABC.txt.

Luo ABC.txt-tiedosto, jossa on alla lueteltu seuraava sisältö:

1 Tämä ohjelma kertoo 2 menetelmän 3 next token() käytöstä


6. smallCaseMod(): Tämä menetelmä ottaa loogisen arvon lippu arvo ja tarkistaa, muunnetaanko merkki automaattisesti pieniksi kirjaimiksi. Jos lippu on tosi, kaikki tunnuksen sanat muunnetaan pieniksi kirjaimilla tai muuten merkit asetetaan sellaisiksi kuin ne ovat, eivätkä ne halua muuntaa niitä.

Syntaksi:

public void smallCaseMode(boolen lippu)

  • Parametri: Se vaatii boolen lippu arvo. Jos se on tosi, kaikki merkit muunnetaan pieniksi ja jos epätosi, niitä ei muunneta.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.

Esimerkki:

Java
// Demonstrating the use of lowerCaseMode() method import java.io.*; public class NewClass {  public static void main(String[] args) throws InterruptedException  FileNotFoundException IOException  {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  // Use of lowerCaseMode() method to  //Here the we have set the Lower Case Mode ON    boolean arg = true;  token.lowerCaseMode(arg);  int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)  {  switch (t)  {  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Word : hello  
Word : geeks
Word : this
Word : is
Word : about
Word : lowercasemode

Huomautus: Tämä ohjelma ei toimi onnistuneesti, koska tiedostoa "ABC.txt" ei ole olemassa. Jos haluamme testata koodia järjestelmässä, meidän on vain luotava tiedostonimi ABC.txt.

Luo ABC.txt-tiedosto, jossa on alla lueteltu seuraava sisältö:

Hei Geeks Tämä koskee pienikokoista tilaa ()


7. Tavallinen Char(): Tämä menetelmä ottaa int-arvon ch tulee kohdella hahmona. Tällä menetelmällä voimme hoitaa a merkki a erikoismerkkinä, kuten numerosana tai välilyönti.

Syntaksi:

public void tavallinen merkki(int ch)

  • Parametri: Tämä menetelmä vaatii yhden int ch arvoa, jota käsitellään hahmona.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.

Esimerkki:

Java
// Demonstrating the use of ordinaryChar() method import java.io.*; public class Geeks {  public static void main(String[] args) throws InterruptedException  FileNotFoundException IOException  {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  // Use of ordinaryChar() method   // Here we have taken 's' as an ordinary character  token.ordinaryChar('s');  int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)  {  switch (t)  {  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Word : Hello  
Word : Geek
Word : Thi
Word : I
Word : zz
Word : About
Word : ordinaryChar

Huomautus: Tämä ohjelma ei toimi onnistuneesti, koska tiedostoa "ABC.txt" ei ole olemassa. Jos haluamme testata koodia järjestelmässä, meidän on vain luotava tiedostonimi ABC.txt.

Luo ABC.txt-tiedosto, jossa on alla lueteltu seuraava sisältö:

Hei Geeks Thissss Issszz Tietoja tavallisesta Char():sta Tämä menetelmä on poistanut 's' koko streamista


8. tavalliset merkit(): Tämä menetelmä määrittää, että kaikkia merkkejä alueella matalasta korkeaan (mukaan lukien) käsitellään tavallisina merkeinä ja tämän menetelmän kutsumisen jälkeen merkkejä ei enää käsitellä erikoismerkeinä.

java-kytkin

Syntaksi:

public void tavalliset merkit (int matala in korkea)

  • Parametri: Tämä menetelmä ottaa kaksi kokonaislukuarvoa matala ja korkea ( mukaan lukien) erikoismerkiksi muunnetun merkin alue.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.

Esimerkki:

Java
// Demonstrating the use of ordinaryChars() method import java.io.*; public class Geeks {  public static void main(String[] args) throws InterruptedException  FileNotFoundException IOException  {  FileReader reader = new FileReader('ABC.txt');  BufferedReader bufferread = new BufferedReader(reader);  StreamTokenizer token = new StreamTokenizer(bufferread);  // Use of ordinaryChars() method   // Here we have taken low = 'a' and high = 'c'   token.ordinaryChars('a''c');  int t;  while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)  {  switch (t)  {  case StreamTokenizer.TT_NUMBER:  System.out.println('Number : ' + token.nval);  break;  case StreamTokenizer.TT_WORD:  System.out.println('Word : ' + token.sval);  break;  }  }  } } 

Lähtö:

Word : Hello  
Word : Geeks
Word : This
Word : is
Word : out
Word : ordin
Word : ryCh
Word : rs

Huomautus: Tämä ohjelma ei toimi onnistuneesti, koska tiedostoa "ABC.txt" ei ole olemassa. Jos haluamme testata koodia järjestelmässä, meidän on vain luotava tiedostonimi ABC.txt.

Luo ABC.txt-tiedosto, jossa on alla lueteltu seuraava sisältö:

Hello Geeks Tämä koskee tavallisia Chars()


StreamTokenizerin käyttäminen tekstitiedoston tokenointiin

StreamTokenizer-luokkaa käytetään myös tekstitiedoston tokenointiin ja tässä käytetään Tokenizer-luokan methojen menetelmiä.

Vaihe 1: Luo ensin tekstitiedosto sovelluksella .txt laajennus samassa juurihakemistossa. Täällä loimme sen nimellä Geeks.txt .

Tekstitiedosto' title=



Vaihe 2: Luo nyt Java-tiedosto ja kirjoita koodi tekstitiedostossa oleviin tokenoituihin tekstitietoihin.

Geeks.java-tiedosto:

Java
// Java program to Tokenized the text  // file data using StreamTokenizer methods import java.io.*;  public class Geeks {   public static void main(String[] args) throws InterruptedException   FileNotFoundException IOException   {   FileReader reader = new FileReader('Geeks.txt');   BufferedReader bufferread = new BufferedReader(reader);   StreamTokenizer token = new StreamTokenizer(bufferread);     // Use of ordinaryChar() method   // Here we have taken 's' as an ordinary character   token.ordinaryChar('s');     int t;   while ((t = token.nextToken()) != StreamTokenizer.TT_EOF)   {   switch (t)   {   case StreamTokenizer.TT_NUMBER:   System.out.println('Number : ' + token.nval);   break;   case StreamTokenizer.TT_WORD:   System.out.println('Word : ' + token.sval);   break;     }   }   }  }  

Lähtö:

OutputEsimerkki' loading='lazy' title=


Kansiorakenne:

Kansiorakenne' loading='lazy' title=


Seuraava artikkeli  –  Java.io.StreamTokenenizer-luokka Javassa | Sarja 2

Luo tietokilpailu