logo

Java StreamTokenizer klase — 1. komplekts

Java valodā StreamTokenizer klase atrodas java.io pakotne . To izmanto, lai parsētu ievades straumi, sadalot to mazos gabalos, kas pazīstami kā žetonus šie marķieri atvieglo apstrādi. Žetons var būt vārds, cipars vai jebkurš konkrēts simbols. Stream Tokenizer var atpazīt ciparu virknes, kas tiek citētas, un dažādus komentāru stilus.

StreamTokenizer klases iezīmes:

Galvenās StreamTokenenizer klases funkcijas ir uzskaitītas zemāk:



  • Tas sadala ievades straumes marķieros, piemēram, vārdu un ciparu simbolos.
  • Tā atbalsta līniju numuru izsekošanu.
  • Tas var uzskatīt rindiņas beigu rakstzīmes kā marķierus.
  • Tā var arī automātiski konvertēt vārdu marķierus uz mazajiem burtiem.

StreamTokenizer klases deklarācija

StreamTokenenizer klases deklarācija ir šāda:

publiskā klase StreamTokenizer paplašina Objektu īsteno Serializējams

Piezīme: Tas paplašina objektu un ievieš Serializable.

StreamTokenizer klases konstruktori

Šī klase sastāv no diviem konstruktoriem, ar kuru palīdzību mēs varam dažādos veidos izveidot šīs klases objektus. Šajā klasē ir pieejami šādi konstruktori:

1. StreamTokenizer (InputStream ir): Šis konstruktors ir novecojušas . Tas ir vecāks veids, kā izveidot marķieri tieši no baitu straumes.

Sintakse:

StreamTokenizer (InputStream ir)

Piezīme: Tas nav ieteicams, jo tas darbojas uz baitiem, nevis rakstzīmēm.

2. StreamTokenizer (Reader r): Šis ir labākais veids, kā izveidot marķieri, izmantojot rakstzīmju straumi, kas pareizi apstrādā tekstu.

Sintakse:

StreamTokenizer (Reader r)

Piemērs:

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

Izvade
Word: Hello Number: 123.0 


Java StreamTokenizer metodes

Tālāk esošajā tabulā ir parādītas šīs klases metodes.

MetodeApraksts
komentārsChar()Norāda, ka rakstzīme ch sāk vienas rindiņas komentāru. Visas rakstzīmes no komentāra rakstzīmes līdz rindas beigām tiek ignorētas.
rinda ()Atgriež ievades straumes pašreizējās rindas numuru.
toString()Atgriež pašreizējās straumes pilnvaras un rindas numura attēlojumu.

eolIsSignificant (būla karogs)

Nosaka, vai rindas beigu rakstzīmes tiek uzskatītas par nozīmīgiem marķieriem. Ja īstās rindas beigu rakstzīmes tiek atgrieztas kā marķieri.

parastā zīme (int ch)Norāda, ka rakstzīme ch tiek uzskatīta par parastu rakstzīmi, nevis kā vārda skaitlis vai komentāra rakstzīme.
nextToken()Parsē nākamo marķieri no ievades straumes un atgriež tā veidu.
mazo burtu režīms()Nosaka, vai vārdu marķieri tiek automātiski pārveidoti par mazajiem burtiem.
parastāChar()Norāda, ka rakstzīme ch tiek uzskatīta par parastu rakstzīmi.
parastās rakstzīmes()Norāda, ka visas rakstzīmes diapazonā no zemas līdz lielai tiek uzskatītas par parastajām rakstzīmēm.


Tagad mēs detalizēti apspriedīsim katru metodi pa vienam:


1. komentārsChar(): Šo metodi izmanto, lai norādītu rakstzīmi ch kas sākas ar vienas rindiņas komentāru un StreamTokenizer neatpazīst visas rakstzīmes no šīs rakstzīmes līdz rindas beigām.

Sintakse:

publisks tukšs komentārsChar(int ch)

repl java
  • Parametrs: Šī metode izmanto vienu veselu skaitļa vērtību ch pēc tam visi varoņi tiek ignorēti
  • Atgriešanas veids: Šī metode neko neatgriež.

Piemērs:

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

Izvade:

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.

Piezīme: Šī programma nedarbosies veiksmīgi, jo fails "ABC.txt" neeksistē. Ja mēs vēlamies pārbaudīt kodu sistēmā, mums vienkārši jāizveido faila nosaukums ABC.txt.

Izveidojiet failu ABC.txt ar tālāk norādīto saturu:

Programmētāji 1 2 3 Geeks Sveiki a Programma šeit ir izskaidrota, mani draugi.


2. rinda(): Šī metode atgriež pašreizējās rindas numuru, ko apstrādā StreamTokenizer. Šī metode ir ļoti noderīga, ja vēlamies pārbaudīt, kā notiek apstrāde, atkļūdo programmu, kā arī varam izsekot rindu numuriem tokenizācijas laikā.

Sintakse:

publiska veļa ()

  • Parametrs: Šī metode neņem nekādus parametrus.
  • Atgriešanas veids: Šī metode atgriež intu vērtību, kas ir pašreizējās ievades straumes rindas numurs.

Piemērs:

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

Izvade:

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(): Šī metode atgriež virkni, kas attēlo pašreizējo straumes marķieri ar marķiera vērtību un rindas numuru, ko tā pašlaik izmanto.

Sintakse:

publiska virkne toString()

  • Parametrs: Šī metode neņem nekādus parametrus.
  • Atgriešanas veids: Šī metode atgriež virknes vērtību, kas apzīmē pašreizējo straumes marķieri ar rindas numuru.

Piemērs:

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

Izvade:

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(): Šī metode neko neatgriež, bet tiek izmantota, lai pārbaudītu, vai EOL (rindas beigas) rakstzīme ir jāmarķē. Ja karodziņš ir patiess, katra rindas beigu rakstzīme tiek uzskatīta par marķieri un tiek piešķirts marķiera tips TT_EOL, ignorētā eol rakstzīme tiek uzskatīta par atstarpi.

Sintakse:

publiskais tukšums eolIsSignificant (būla karogs)

  • Parametrs: Šī metode izmanto Būla vērtību karogs ja tā ir patiesa, tad rindas beigu rakstzīme tiek uzskatīta par marķieri vai tiek ignorēta kā atstarpe.
  • Atgriešanas veids: Šī metode neko neatgriež.

Piemērs:

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

Izvade:

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

Piezīme: Šī programma nedarbosies veiksmīgi, jo fails "ABC.txt" neeksistē. Ja mēs vēlamies pārbaudīt kodu sistēmā, mums vienkārši jāizveido faila nosaukums ABC.txt.

Izveidojiet failu ABC.txxt ar tālāk norādīto saturu:

1 Geeks 2 Par 3 Geeks


5. nextToken(): Šī metode nolasa nākamo marķieri no ievades straumes un atgriež veidu. Marķiera veids tiek saglabāts tveids lauks. Tas atgriež veidu kā veselu skaitļa vērtību, kas var būt TT_WORD TT_NUMBER un TT_EOL utt.

java tipa mainīgais

Sintakse:

publiskais int nextToken()

  • Parametrs: Šī metode neņem nekādus parametrus.
  • Atgriešanas veids: Šī metode atgriež starpt marķiera veida vērtība.

Piemērs:

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

Izvade:

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

Piezīme: Šī programma nedarbosies veiksmīgi, jo fails "ABC.txt" neeksistē. Ja mēs vēlamies pārbaudīt kodu sistēmā, mums vienkārši jāizveido faila nosaukums ABC.txt.

Izveidojiet failu ABC.txt ar tālāk norādīto saturu:

1 Šī programma stāsta 2 par 3 next token() metodes izmantošanu


6. LowCaseMod(): Šī metode izmanto Būla vērtību karogs vērtību un pārbauda, ​​vai marķieris ir automātiski jāpārvērš par mazajiem burtiem. Ja karodziņš ir patiess, visi marķiera vārdi tiek pārveidoti par mazajiem burtiem vai citādi marķieri tiek iestatīti tādi, kādi tie ir, un nevēlas tos pārvērst.

Sintakse:

publiskais spēkā esamības mazo burtu režīms (būla karodziņš)

  • Parametrs: Tas aizņem Būla vērtību karogs vērtību. Ja tā ir patiesa, tad visi marķieri tiek pārveidoti par mazajiem burtiem, un, ja tā ir nepatiesa, tie netiks konvertēti.
  • Atgriešanas veids: Šī metode neko neatgriež.

Piemērs:

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

Izvade:

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

Piezīme: Šī programma nedarbosies veiksmīgi, jo fails "ABC.txt" neeksistē. Ja mēs vēlamies pārbaudīt kodu sistēmā, mums vienkārši jāizveido faila nosaukums ABC.txt.

Izveidojiet failu ABC.txt ar tālāk norādīto saturu:

Sveiki Geeks, tas ir par mazo burtu režīmu ()


7. parastāChar(): Šai metodei tiek izmantota iekšējā vērtība ch jāizturas kā pret tēlu. Izmantojot šo metodi, mēs varam ārstēt a raksturs a kā speciālo rakstzīmi, piemēram, cipara vārdu vai atstarpes.

Sintakse:

public void parastāChar(int ch)

  • Parametrs: Šī metode aizņem vienu int ch vērtība, kas tiks uzskatīta par raksturu.
  • Atgriešanas veids: Šī metode neko neatgriež.

Piemērs:

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

Izvade:

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

Piezīme: Šī programma nedarbosies veiksmīgi, jo fails "ABC.txt" neeksistē. Ja mēs vēlamies pārbaudīt kodu sistēmā, mums vienkārši jāizveido faila nosaukums ABC.txt.

Izveidojiet failu ABC.txt ar tālāk norādīto saturu:

Sveiki Geeks Thissss Issszz Par parastoChar() Šī metode ir noņēmusi "s" no visas straumes


8. Parastās Chars(): Šī metode nosaka, ka visas rakstzīmes diapazonā no zemas līdz lielai (ieskaitot) tiks uzskatītas par parastajām rakstzīmēm un pēc šīs metodes izsaukšanas rakstzīmes vairs netiks uzskatītas par īpašām rakstzīmēm.

Sintakse:

publisks tukšums parastāsChars (int low in high)

  • Parametrs: Šī metode izmanto divas veselas vērtības zems un augsts ( ieskaitot) rakstzīmes diapazons, kas tiek pārveidots par īpašu rakstzīmi.
  • Atgriešanas veids: Šī metode neko neatgriež.

Piemērs:

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

Izvade:

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

Piezīme: Šī programma nedarbosies veiksmīgi, jo fails "ABC.txt" neeksistē. Ja mēs vēlamies pārbaudīt kodu sistēmā, mums vienkārši jāizveido faila nosaukums ABC.txt.

Izveidojiet failu ABC.txt ar tālāk norādīto saturu:

Sveiki Geeks Tas ir par parastajiem Chars()


StreamTokenizer izmantošana teksta faila marķierēšanai

StreamTokenizer klase tiek izmantota arī teksta faila marķierēšanai, un šeit mēs izmantojam Tokenizer klases metodes.

10 no 10

1. darbība: Vispirms izveidojiet teksta failu ar .txt paplašinājumu tajā pašā saknes direktorijā. Šeit mēs to izveidojām ar nosaukumu Geeks.txt .

Teksta fails' title=



2. darbība: Tagad izveidojiet Java failu un ierakstiet kodu, lai tokenizētu teksta failā esošos teksta datus.

Geeks.java fails:

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

Izvade:

Izvadespiemērs' loading='lazy' title=


Mapes struktūra:

Mapju struktūra' loading='lazy' title=


Nākamais raksts  –  Java.io.StreamTokenizer klase Java | 2. komplekts

Izveidojiet viktorīnu