logo

Razred Java StreamTokenizer – komplet 1

V Javi je StreamTokenizer razred je prisoten v paket java.io . Uporablja se za razčlenjevanje vhodnega toka tako, da ga razdeli na majhne koščke, znane kot žetoni ti žetoni olajšajo obdelavo. Žeton je lahko beseda, številka ali kateri koli poseben simbol. Stream Tokenizer lahko prepozna nize s citiranimi številkami in različne sloge komentarjev.

Lastnosti razreda StreamTokenizer:

Spodaj so navedene ključne značilnosti razreda StreamTokenizer:



  • Vhodne tokove razdeli na žetone, kot so simboli, besede in številke.
  • Podpira sledenje številkam vrstic.
  • Znake na koncu vrstice lahko obravnava kot žetone.
  • Prav tako lahko samodejno pretvori besedne žetone v male črke.

Izjava razreda StreamTokenizer

Deklaracija razreda StreamTokenizer je:

javni razred StreamTokenizer razširja Object implementira Serializable

Opomba: Razširja Object in implementira Serializable.

Konstruktorji razreda StreamTokenizer

Ta razred je sestavljen iz dveh konstruktorjev, s pomočjo katerih lahko ustvarjamo objekte tega razreda na različne načine. V tem razredu so na voljo naslednji konstruktorji:

1. StreamTokenizer (InputStream je): Ta konstruktor je zastarel . To je starejši način za ustvarjanje tokenizerja neposredno iz toka bajtov.

Sintaksa:

StreamTokenizer(InputStream je)

Opomba: To ni priporočljivo, ker deluje na bajtih in ne na znakih.

2. StreamTokenizer (Reader r): To je najboljši način za ustvarjanje tokenizerja, ki uporablja tok znakov, ki pravilno obravnava besedilo.

Sintaksa:

StreamTokenizer (Reader r)

primer:

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);  }  }  } } 

Izhod
Word: Hello Number: 123.0 


Metode Java StreamTokenizer

Spodnja tabela prikazuje metode tega razreda.

MetodaOpis
commentChar()Podaja, da znak ch začne enovrstični komentar. Vsi znaki od znaka komentarja do konca vrstice so prezrti.
vrstica()Vrne trenutno številko vrstice vhodnega toka.
toString()Vrne predstavitev niza trenutnega žetona toka in številko vrstice, v kateri se pojavi.

eolIsSignificant(logična zastavica)

Določa, ali se znaki na koncu vrstice obravnavajo kot pomembni žetoni. Če so pravi znaki za konec vrstice vrnjeni kot žetoni.

niz kot niz
navadenChar(int ch)Podaja, da se znak ch obravnava kot navaden znak in ne kot številka besede ali znak komentarja.
nextToken()Razčleni naslednji žeton iz vhodnega toka in vrne njegov tip.
smallCaseMode()Določa, ali se besedni žetoni samodejno pretvorijo v male črke.
navadenChar()Podaja, da se znak ch obravnava kot navaden znak.
navadni znaki()Podaja, da se vsi znaki v nizkem do visokem obsegu obravnavajo kot običajni znaki.


Zdaj bomo podrobno razpravljali o vsaki metodi posebej:


1. commentChar(): Ta metoda se uporablja za določanje znaka pogl ki se začne pri komentarju ene vrstice in StreamTokenizer ne prepozna vseh znakov od tega znaka do konca vrstice.

Sintaksa:

javni void commentChar(int ch)

  • Parameter: Ta metoda sprejme eno samo celoštevilsko vrednost pogl po tem so vsi znaki prezrti
  • Vrsta vračila: Ta metoda ne vrne ničesar.

primer:

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;  }  }  } } 

Izhod:

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.

Opomba: Ta program se ne bo uspešno zagnal, ker datoteka 'ABC.txt' ne obstaja. Če želimo preizkusiti kodo v sistemu, moramo preprosto ustvariti ime datoteke ABC.txt.

Ustvarite datoteko ABC.txt z naslednjo vsebino, ki je navedena spodaj:

Programerji 1 2 3 Geeks Pozdravljeni, tukaj je razložen program, moji prijatelji.


2. vrstica(): Ta metoda vrne trenutno številko vrstice, ki jo obdela StreamTokenizer. Ta metoda je zelo uporabna, ko želimo preveriti, kako deluje obdelava, odpraviti napake v programu in lahko tudi sledimo številkam vrstic v času tokenizacije.

Sintaksa:

public int linen()

  • Parameter: Ta metoda ne zajema nobenega parametra.
  • Vrsta vračila: Ta metoda vrne int vrednost številko vrstice trenutnega vhodnega toka.

primer:

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;  }  }  } } 

Izhod:

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(): Ta metoda vrne niz, ki predstavlja trenutni žeton toka z vrednostjo žetona in številko vrstice, ki jo trenutno uporablja.

Sintaksa:

public String toString()

  • Parameter: Ta metoda ne zajema nobenega parametra.
  • Vrsta vračila: Ta metoda vrne vrednost niza, ki predstavlja trenutni žeton toka s številko vrstice.

primer:

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;  }  }  } } 

Izhod:

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


java psevdokoda

4. eolIsSignificant(): Ta metoda ne vrne ničesar, ampak se uporablja za preverjanje, ali je treba znak EOL (konec vrstice) tokenizirati. Če je zastavica resnična, se vsak znak na koncu vrstice obravnava kot žeton in mu je dodeljen tip žetona TT_EOL, znak eol pa se prezre in se obravnava kot presledek.

Sintaksa:

public void eolIsSignificant(logična zastavica)

  • Parameter: Ta metoda ima logično vrednost zastava če je res, potem je znak za konec vrstice obravnavan kot žeton a ali prezrt kot presledek.
  • Vrsta vračila: Ta metoda ne vrne ničesar.

primer:

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;  }  }  } } 

Izhod:

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

Opomba: Ta program se ne bo uspešno zagnal, ker datoteka 'ABC.txt' ne obstaja. Če želimo preizkusiti kodo v sistemu, moramo preprosto ustvariti ime datoteke ABC.txt.

Ustvarite datoteko ABC.txxt z naslednjo vsebino, ki je navedena spodaj:

1 Geeks 2 Za 3 Geeke


5. nextToken(): Ta metoda prebere naslednji žeton iz vhodnega toka in vrne vrsto. Vrsta žetona je shranjena v ttype polje. Vrne vrsto kot celoštevilsko vrednost, ki je lahko TT_WORD TT_NUMBER in TT_EOL itd.

Sintaksa:

public int nextToken()

  • Parameter: Ta metoda ne zajema nobenega parametra.
  • Vrsta vračila: Ta metoda vrne int vrednost vrste žetona.

primer:

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;  }  }  } } 

Izhod:

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

Opomba: Ta program se ne bo uspešno zagnal, ker datoteka 'ABC.txt' ne obstaja. Če želimo preizkusiti kodo v sistemu, moramo preprosto ustvariti ime datoteke ABC.txt.

Ustvarite datoteko ABC.txt z naslednjo vsebino, ki je navedena spodaj:

1 Ta program pove 2 o uporabi metode 3 next token().


6. smallCaseMod(): Ta metoda ima logično vrednost zastava vrednost in preveri, ali naj se žeton samodejno pretvori v male črke. Če je zastavica resnična, so vse besede žetona pretvorjene v male črke ali drugače so žetoni nastavljeni, kot so, in jih ne želijo pretvoriti.

Sintaksa:

public void smallCaseMode(logična zastavica)

  • Parameter: Potrebuje logično vrednost zastava vrednost. Če je res, se vsi žetoni pretvorijo v male črke, če je napačno, pa ne bodo pretvorjeni.
  • Vrsta vračila: Ta metoda ne vrne ničesar.

primer:

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;  }  }  } } 

Izhod:

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

Opomba: Ta program se ne bo uspešno zagnal, ker datoteka 'ABC.txt' ne obstaja. Če želimo preizkusiti kodo v sistemu, moramo preprosto ustvariti ime datoteke ABC.txt.

Ustvarite datoteko ABC.txt z naslednjo vsebino, ki je navedena spodaj:

Pozdravljeni Geeki, gre za LowerCaseMode()


7. navadenChar(): Ta metoda ima vrednost int pogl je treba obravnavati kot lik. S to metodo lahko zdravimo a značaj a kot poseben znak, kot je številska beseda ali presledek.

Sintaksa:

javni void navadni znak (int ch)

  • Parameter: Ta metoda zahteva en int pogl vrednost, ki bo obravnavana kot znak.
  • Vrsta vračila: Ta metoda ne vrne ničesar.

primer:

moj kriket v živo
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;  }  }  } } 

Izhod:

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

Opomba: Ta program se ne bo uspešno zagnal, ker datoteka 'ABC.txt' ne obstaja. Če želimo preizkusiti kodo v sistemu, moramo preprosto ustvariti ime datoteke ABC.txt.

Ustvarite datoteko ABC.txt z naslednjo vsebino, ki je navedena spodaj:

Pozdravljeni Geeks Thissss Issszz O navadnemChar() Ta metoda je odstranila 's' iz celotnega toka


8. navadni znaki(): Ta metoda določa, da bodo vsi znaki v območju od nizke do visoke (vključno) obravnavani kot običajni znaki in po klicu te metode znaki ne bodo več obravnavani kot posebni znaki.

Sintaksa:

public void navadni znaki (int nizko int visoko)

  • Parameter: Ta metoda ima dve celoštevilski vrednosti nizka in visoko ( vključno) obseg znaka, ki se pretvori v poseben znak.
  • Vrsta vračila: Ta metoda ne vrne ničesar.

primer:

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;  }  }  } } 

Izhod:

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

Opomba: Ta program se ne bo uspešno zagnal, ker datoteka 'ABC.txt' ne obstaja. Če želimo preizkusiti kodo v sistemu, moramo preprosto ustvariti ime datoteke ABC.txt.

Ustvarite datoteko ABC.txt z naslednjo vsebino, ki je navedena spodaj:

Pozdravljeni Geeki, gre za navadne znake ()


Uporaba StreamTokenizer za tokenizacijo besedilne datoteke

Razred StreamTokenizer se uporablja tudi za tokenizacijo besedilne datoteke in tukaj uporabljamo metode metod razreda Tokenizer.

1. korak: Najprej ustvarite besedilno datoteko z .txt razširitev v istem korenskem imeniku. Tukaj smo ga ustvarili z imenom Geeks.txt .

TextFile' title=



2. korak: Zdaj ustvarite datoteko Java in napišite kodo za tokeniziranje besedilnih podatkov v besedilni datoteki.

Datoteka Geeks.java:

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;     }   }   }  }  

Izhod:

OutputExample' loading='lazy' title=


Struktura mape:

FolderStructure' loading='lazy' title=


Naslednji članek  –  Razred Java.io.StreamTokenizer v Javi | Komplet 2

Ustvari kviz