Java programoje StreamTokenizer klasė yra java.io paketą . Jis naudojamas įvesties srautui analizuoti, suskaidant jį į mažus gabalus, vadinamus žetonų šie žetonai palengvina apdorojimą. Žetonas gali būti žodis, skaičius arba bet koks konkretus simbolis. Stream Tokenizer gali atpažinti skaičių kabutes ir įvairius komentarų stilius.
„StreamTokenenizer“ klasės ypatybės:
Pagrindinės „StreamTokenenizer“ klasės savybės yra išvardytos žemiau:
- Jis suskaido įvesties srautus į žetonus, tokius kaip simboliai, žodžiai ir skaičiai.
- Jis palaiko sekimo eilučių numerius.
- Jis gali laikyti eilutės pabaigos simbolius kaip žetonus.
- Jis taip pat gali automatiškai konvertuoti žodžių žetonus į mažąsias raides.
„StreamTokenenizer“ klasės deklaracija
„StreamTokenenizer“ klasės deklaracija yra tokia:
viešoji klasė „StreamTokenenizer“ išplečia Objektų įgyvendinimą Serializuojama
Pastaba: Jis išplečia objektą ir įgyvendina Serializable.
„StreamTokenenizer“ klasės konstruktoriai
Šią klasę sudaro du konstruktoriai, kurių pagalba galime įvairiai kurti šios klasės objektus. Šioje klasėje galimi šie konstruktoriai:
1. StreamTokenizer (InputStream yra): Šis konstruktorius yra pasenęs . Tai senesnis būdas sukurti žetoną tiesiai iš baitų srauto.
Sintaksė:
StreamTokenizer („InputStream“ yra)
Pastaba: Tai nerekomenduojama, nes veikia baitais, o ne simboliais.
2. StreamTokenizer (Reader r): Tai geriausias būdas sukurti žetoną, naudojant simbolių srautą, kuris tinkamai tvarko tekstą.
Sintaksė:
StreamTokenizer (Reader r)
Pavyzdys:
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); } } } }
Išvestis
Word: Hello Number: 123.0
„Java StreamTokenizer“ metodai
Žemiau esančioje lentelėje parodyti šios klasės metodai.
| Metodas | Aprašymas |
|---|---|
| komentarasChar() | Nurodoma, kad simbolis ch pradeda vienos eilutės komentarą. Visi simboliai nuo komentaro simbolio iki eilutės pabaigos ignoruojami. |
| eilutė () | Grąžina dabartinės įvesties srauto eilutės numerį. |
| toString() | Grąžina esamo srauto prieigos rakto ir eilutės numerio atvaizdavimą. |
eolIsSignificant (bulio vėliava) | Nustato, ar eilutės pabaigos simboliai traktuojami kaip reikšmingi atpažinimo ženklai. Jei tikrieji eilutės pabaigos simboliai grąžinami kaip žetonai. |
| įprastas simbolis (int ch) | Nurodoma, kad simbolis ch būtų traktuojamas kaip įprastas simbolis, o ne kaip žodžio numeris ar komentaro simbolis. |
| nextToken() | Išanalizuoja kitą prieigos raktą iš įvesties srauto ir grąžina jo tipą. |
| mažųjų raidžių režimas () | Nustato, ar žodžių prieigos raktai automatiškai konvertuojami į mažąsias raides. |
| įprastas simbolis() | Nurodoma, kad simbolis ch traktuojamas kaip įprastas simbolis. |
| įprasti simboliai () | Nurodo, kad visi simboliai diapazone nuo mažo iki didesnio laikomi įprastais simboliais. |
Dabar mes išsamiai aptarsime kiekvieną metodą po vieną:
1. komentarasChar(): Šis metodas naudojamas simboliui nurodyti sk kuris prasideda nuo vienos eilutės komentaro ir visų simbolių nuo šio simbolio iki eilutės pabaigos StreamTokenenizer neatpažįsta.
Sintaksė:
viešas tuščias komentarasChar(int ch)
- Parametras: Šis metodas paima vieną sveikąjį skaičių sk po to visi veikėjai ignoruojami
- Grąžinimo tipas: Šis metodas nieko negrąžina.
Pavyzdys:
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; } } } }
Išvestis:
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.
Pastaba: Ši programa neveiks sėkmingai, nes failo „ABC.txt“ nėra. Jei norime išbandyti kodą sistemoje, tereikia sukurti failo pavadinimą ABC.txt.
Sukurkite failą ABC.txt su toliau nurodytu turiniu:
Programuotojai 1 2 3 Geeks Sveiki a Programa paaiškinta čia, mano draugai.
2. eilutė (): Šis metodas grąžina dabartinės eilutės numerį, kurį apdoroja StreamTokenenizer. Šis metodas yra labai naudingas, kai norime patikrinti, kaip veikia apdorojimas, derinti programą ir taip pat galime sekti eilučių numerius tokenizacijos metu.
Sintaksė:
vieša patalynė ()
- Parametras: Šis metodas nereikalauja jokių parametrų.
- Grąžinimo tipas: Šis metodas grąžina įvesties reikšmę dabartinio įvesties srauto eilutės numerį.
Pavyzdys:
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; } } } }
Išvestis:
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(): Šis metodas grąžina eilutę, vaizduojančią dabartinį srauto prieigos raktą su prieigos rakto reikšme ir šiuo metu naudojamu eilutės numeriu.
java if teiginys
Sintaksė:
vieša eilutė įString()
- Parametras: Šis metodas nereikalauja jokių parametrų.
- Grąžinimo tipas: Šis metodas grąžina eilutės reikšmę, atspindinčią dabartinį srauto prieigos raktą su eilutės numeriu.
Pavyzdys:
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; } } } }
Išvestis:
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(): Šis metodas nieko negrąžina, bet naudojamas patikrinti, ar EOL (eilutės pabaigos) simbolis turi būti tokenizuotas. Jei vėliavėlė yra teisinga, kiekvienas eilutės pabaigos simbolis laikomas atpažinimo ženklu ir jam priskiriamas prieigos rakto tipas TT_EOL, ignoruojamas eol simbolis yra traktuojamas kaip tarpas.
Sintaksė:
viešoji tuštuma eolIsSignificant (bulio vėliava)
- Parametras: Šiam metodui reikalinga loginė vertė vėliava jei tiesa, eilutės pabaigos simbolis laikomas simboliu arba ignoruojamas kaip tarpas.
- Grąžinimo tipas: Šis metodas nieko negrąžina.
Pavyzdys:
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; } } } }
Išvestis:
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
Pastaba: Ši programa neveiks sėkmingai, nes failo „ABC.txt“ nėra. Jei norime išbandyti kodą sistemoje, tereikia sukurti failo pavadinimą ABC.txt.
Sukurkite failą ABC.txxt su toliau nurodytu turiniu:
1 Geeks 2 Už 3 Geeks
5. nextToken(): Šis metodas nuskaito kitą prieigos raktą iš įvesties srauto ir grąžina tipą. Žetono tipas saugomas ttipas lauke. Jis grąžina tipą kaip sveikąjį skaičių, kuris gali būti TT_WORD TT_NUMBER ir TT_EOL ir kt.
Sintaksė:
viešas int nextToken()
- Parametras: Šis metodas nereikalauja jokių parametrų.
- Grąžinimo tipas: Šis metodas grąžina tarpt žetono tipo vertė.
Pavyzdys:
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; } } } }
Išvestis:
Word : This
Word : program
Word : tells
Number : 2.0
Word : about
Word : use
Word : of
Number : 3.0
Word : next
Word : token
Word : method
Pastaba: Ši programa neveiks sėkmingai, nes failo „ABC.txt“ nėra. Jei norime išbandyti kodą sistemoje, tereikia sukurti failo pavadinimą ABC.txt.
Sukurkite failą ABC.txt su toliau nurodytu turiniu:
1 Ši programa praneša 2 apie 3 next token() metodo naudojimą
6. Mažosios raidėsMod(): Šiam metodui reikalinga loginė vertė vėliava reikšmę ir patikrina, ar prieigos raktas turi būti automatiškai konvertuojamas į mažąsias raides. Jei vėliavėlė yra teisinga, visi žetono žodžiai paverčiami mažosiomis raidėmis arba kitaip žetonai nustatomi taip, kaip yra ir nenori jų konvertuoti.
Sintaksė:
public void mažųjų didžiųjų raidžių režimas (bulio vėliavėlė)
- Parametras: Reikia loginio vėliava vertė. Jei tai tiesa, tada visi žetonai konvertuojami į mažąsias raides, o jei klaidingi, jie nebus konvertuojami.
- Grąžinimo tipas: Šis metodas nieko negrąžina.
Pavyzdys:
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; } } } }
Išvestis:
Word : hello
Word : geeks
Word : this
Word : is
Word : about
Word : lowercasemode
Pastaba: Ši programa neveiks sėkmingai, nes failo „ABC.txt“ nėra. Jei norime išbandyti kodą sistemoje, tereikia sukurti failo pavadinimą ABC.txt.
Sukurkite failą ABC.txt su toliau nurodytu turiniu:
Sveiki Geeks, tai apie mažųjų raidžių režimą ()
7. Įprasta Char(): Šis metodas įgauna tarpinę reikšmę sk turi būti traktuojamas kaip personažas. Šiuo metodu galime gydyti a charakteris a kaip specialus simbolis, pvz., skaičių žodis arba tarpas.
Sintaksė:
public void paprastas simbolis(int ch)
- Parametras: Šis metodas apima vieną int sk vertė, kuri bus traktuojama kaip simbolis.
- Grąžinimo tipas: Šis metodas nieko negrąžina.
Pavyzdys:
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; } } } }
Išvestis:
Word : Hello
Word : Geek
Word : Thi
Word : I
Word : zz
Word : About
Word : ordinaryChar
Pastaba: Ši programa neveiks sėkmingai, nes failo „ABC.txt“ nėra. Jei norime išbandyti kodą sistemoje, tereikia sukurti failo pavadinimą ABC.txt.
Sukurkite failą ABC.txt su toliau nurodytu turiniu:
Sveiki Geeks Thissss Issszz Apie normalChar() Šis metodas pašalino „s“ iš viso srauto
bash masyvai
8. Įprasti simboliai(): Šis metodas nurodo, kad visi simboliai diapazone nuo žemo iki didelio (imtinai) bus traktuojami kaip įprasti simboliai, o iškvietus šį metodą, simboliai nebebus laikomi specialiais simboliais.
Sintaksė:
vieša tuščia eiliniai simboliai (vid. žemas, aukštas)
- Parametras: Šis metodas turi dvi sveikųjų skaičių reikšmes žemas ir aukštas ( imtinai) simbolio diapazonas, kuris paverčiamas specialiuoju simboliu.
- Grąžinimo tipas: Šis metodas nieko negrąžina.
Pavyzdys:
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; } } } }
Išvestis:
Word : Hello
Word : Geeks
Word : This
Word : is
Word : out
Word : ordin
Word : ryCh
Word : rs
Pastaba: Ši programa neveiks sėkmingai, nes failo „ABC.txt“ nėra. Jei norime išbandyti kodą sistemoje, tereikia sukurti failo pavadinimą ABC.txt.
Sukurkite failą ABC.txt su toliau nurodytu turiniu:
Sveiki Geeks Tai apie įprastus simbolius ()
„StreamTokenenizer“ naudojimas teksto failo tokenizavimui
„StreamTokenizer“ klasė taip pat naudojama tekstiniam failui ženklinti, o čia mes naudojame „Tokenizer“ klasės metodus.
1 veiksmas: Pirmiausia sukurkite tekstinį failą su .txt plėtinį tame pačiame šakniniame kataloge. Čia mes sukūrėme jį pavadinimu Geeks.txt .
2 veiksmas: Dabar sukurkite „Java“ failą ir parašykite kodą, kad patvirtintumėte tekstiniame faile esančius tekstinius duomenis.
Geeks.java failas:
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; } } } }
Išvestis:
Aplanko struktūra:
Kitas straipsnis – Java.io.StreamTokenenizer klasė Java | 2 rinkinys