logo

Јава СтреамТокенизер Цласс - Сет 1

У Јави СтреамТокенизер класа је присутна у јава.ио пакет . Користи се за рашчлањивање улазног тока разбијањем на мале делове познате као токенс ови токени олакшавају обраду. Токен може бити реч, број или било који специфичан симбол. Стреам Токенизер може препознати низове наводаних бројева и различите стилове коментара.

Карактеристике класе СтреамТокенизер:

Кључне карактеристике класе СтреамТокенизер су наведене у наставку:



  • Разбија улазне токове у токене попут симбола, речи и бројева.
  • Подржава бројеве линија за праћење.
  • Може третирати знакове на крају реда као токене.
  • Такође може аутоматски да конвертује токене речи у мала слова.

Декларација класе СтреамТокенизер

Декларација класе СтреамТокенизер је:

публиц цласс СтреамТокенизер ектендс Објецт имплементс Сериализабле

Напомена: Проширује Објецт и имплементира Сериализабле.

Конструктори класе СтреамТокенизер

Ова класа се састоји од два конструктора уз помоћ којих можемо креирати објекте ове класе на различите начине. Следећи су конструктори доступни у овој класи:

1. СтреамТокенизер (ИнпутСтреам је): Овај конструктор је застарео . То је старији начин да се креира токенизер директно из тока бајтова.

Синтакса:

СтреамТокенизер (ИнпутСтреам је)

Напомена: Ово се не препоручује јер ради на бајтовима, а не на знаковима.

фцфс

2. СтреамТокенизер (Реадер р): Ово је најбољи начин за креирање токенизер-а који користи ток знакова који правилно рукује текстом.

Синтакса:

СтреамТокенизер (Реадер р)

Пример:

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

Излаз
Word: Hello Number: 123.0 


Јава СтреамТокенизер методе

Табела испод показује методе ове класе.

МетодОпис
цомментЦхар()Одређује да знак цх започиње коментар у једном реду. Сви знакови од карактера коментара до краја реда се игноришу.
линија()Враћа тренутни број линије улазног тока.
тоСтринг()Враћа приказ стринга тренутног токена тока и број реда који се појављује.

еолИсСигнифицант (боолеан флаг)

Одређује да ли се знакови на крају реда третирају као значајни токени. Ако се прави знакови на крају реда враћају као токени.

обичан знак (инт цх)Одређује да се знак цх третира као обичан знак, а не као број речи или знак коментара.
нектТокен()Рашчлањује следећи токен из улазног тока и враћа његов тип.
ловЦасеМоде()Одређује да ли се токени речи аутоматски претварају у мала слова.
обичанЦхар()Одређује да се знак цх третира као обичан знак.
обичниЦхарс()Одређује да се сви знакови у опсегу од ниске до високе третирају као обични знакови.


Сада ћемо детаљно разговарати о свакој методи један по један:


1. цомментЦхар(): Овај метод се користи за одређивање карактера гл који почиње коментаром у једном реду и СтреамТокенизер не препознаје све знакове од овог знака до краја реда.

Синтакса:

јавни неважећи коментарЦхар(инт цх)

  • Параметар: Овај метод узима једну целобројну вредност гл након тога се сви ликови занемарују
  • Тип повратка: Овај метод не враћа ништа.

Пример:

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

Излаз:

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.

Напомена: Овај програм се неће успешно покренути јер датотека 'АБЦ.ткт' не постоји. Ако желимо да тестирамо код на систему, једноставно треба да креирамо име датотеке АБЦ.ткт.

Направите датотеку АБЦ.ткт са следећим садржајем који је наведен у наставку:

Програмери 1 2 3 Геекс Здраво, програм је објашњен овде пријатељи моји.


2. линија(): Овај метод враћа тренутни број линије који обрађује СтреамТокенизер. Овај метод је веома користан када желимо да проверимо како обрада функционише, отклањамо грешке у програму и такође можемо да пратимо бројеве линија током времена токенизације.

Синтакса:

публиц инт линен()

  • Параметар: Овај метод не узима ниједан параметар.
  • Тип повратка: Овај метод враћа инт вредност број линије тренутног улазног тока.

Пример:

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

Излаз:

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. тоСтринг(): Овај метод враћа стринг који представља тренутни токен токена са вредношћу токена и бројем линије који тренутно користи.

Синтакса:

јавни стринг тоСтринг()

  • Параметар: Овај метод не узима ниједан параметар.
  • Тип повратка: Овај метод враћа вредност стринга која представља тренутни токен тока са бројем линије.

Пример:

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

Излаз:

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. еолИсСигнифицант(): Овај метод не враћа ништа, али се користи за проверу да ли ЕОЛ (Енд оф Лине) карактер треба да буде токенизован. Ако је заставица тачна, онда се сваки знак на крају реда третира као токен и додељује му се тип токена ТТ_ЕОЛ, а еол карактер се игнорише третира се као размак.

Синтакса:

публиц воид еолИсСигнифицант(боолеан флаг)

  • Параметар: Овај метод узима логички застава ако је то тачно, онда се знак на крају реда третира као токен или се игнорише као размак.
  • Тип повратка: Овај метод не враћа ништа.

Пример:

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

Излаз:

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

Напомена: Овај програм се неће успешно покренути јер датотека 'АБЦ.ткт' не постоји. Ако желимо да тестирамо код на систему, једноставно треба да креирамо име датотеке АБЦ.ткт.

Направите датотеку АБЦ.тккт са следећим садржајем који је наведен у наставку:

1 штребер 2 за 3 штребера


5. нектТокен(): Овај метод чита следећи токен из улазног тока и враћа тип. Тип токена се чува у ттипе поље. Враћа тип као целобројну вредност која може бити ТТ_ВОРД ТТ_НУМБЕР и ТТ_ЕОЛ итд.

Синтакса:

публиц инт нектТокен()

  • Параметар: Овај метод не узима ниједан параметар.
  • Тип повратка: Овај метод враћа инт вредност типа токена.

Пример:

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

Излаз:

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

Напомена: Овај програм се неће успешно покренути јер датотека 'АБЦ.ткт' не постоји. Ако желимо да тестирамо код на систему, једноставно треба да креирамо име датотеке АБЦ.ткт.

Направите датотеку АБЦ.ткт са следећим садржајем који је наведен у наставку:

убаците у тастатуру

1 Овај програм говори 2 о употреби 3 нект токен() методе


6. ловЦасеМод(): Овај метод узима логички застава вредност и проверава да ли токен треба аутоматски да се конвертује у мала слова. Ако је заставица тачна, све речи токена се конвертују у мала слова или се у супротном токени постављају онаквима какви јесу и не желе да их конвертују.

Синтакса:

публиц воид ловЦасеМоде (боолеан флаг)

  • Параметар: Потребно је боолеан застава вредност. Ако је тачно, сви токени се конвертују у мала слова, а ако је нетачно, неће бити конвертовани.
  • Тип повратка: Овај метод не враћа ништа.

Пример:

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

Излаз:

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

Напомена: Овај програм се неће успешно покренути јер датотека 'АБЦ.ткт' не постоји. Ако желимо да тестирамо код на систему, једноставно треба да креирамо име датотеке АБЦ.ткт.

Направите датотеку АБЦ.ткт са следећим садржајем који је наведен у наставку:

Здраво штреберци, ради се о ЛоверЦасеМоде ()


7. обичниЦхар(): Овај метод узима инт вредност гл треба третирати као карактер. Овим методом можемо лечити а карактера а као специјални знак као бројна реч или размак.

Синтакса:

публиц воид цоммонЦхар(инт цх)

  • Параметар: Овај метод узима један инт гл вредност која ће се третирати као лик.
  • Тип повратка: Овај метод не враћа ништа.

Пример:

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

Излаз:

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

Напомена: Овај програм се неће успешно покренути јер датотека 'АБЦ.ткт' не постоји. Ако желимо да тестирамо код на систему, једноставно треба да креирамо име датотеке АБЦ.ткт.

Направите датотеку АБЦ.ткт са следећим садржајем који је наведен у наставку:

Хелло Геекс Тхисссс Исссзз О цоммонЦхар() Овај метод је уклонио 'с' из целог тока


8. обичниЦхарс(): Овај метод специфицира да ће сви знакови у опсегу од ниског до високог (укључиво) бити третирани као обични знакови и након позивања ове методе, знакови више неће бити третирани као специјални знакови.

Синтакса:

публиц воид цоммонЦхарс(инт лов инт хигх)

јава бреак
  • Параметар: Овај метод узима две целобројне вредности ниско и високо ( инцлусиве) опсег карактера који се претвара у посебан знак.
  • Тип повратка: Овај метод не враћа ништа.

Пример:

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

Излаз:

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

Напомена: Овај програм се неће успешно покренути јер датотека 'АБЦ.ткт' не постоји. Ако желимо да тестирамо код на систему, једноставно треба да креирамо име датотеке АБЦ.ткт.

Направите датотеку АБЦ.ткт са следећим садржајем који је наведен у наставку:

Здраво Штребери Ово је о обичнихЦхарс()


Коришћење СтреамТокенизер-а за токенизацију текстуалне датотеке

СтреамТокенизер класа се такође користи за токенизацију текстуалне датотеке и овде користимо методе метода Токенизер класе.

1. корак: Прво направите текстуалну датотеку са .ткт проширење у истом основном директоријуму. Овде смо га креирали са именом Геекс.ткт .

ТектФиле' title=



2. корак: Сада креирајте Јава датотеку и напишите код за токенизацију текстуалних података присутних у текстуалној датотеци.

Геекс.јава фајл:

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

Излаз:

ОутпутЕкампле' loading='lazy' title=


Структура фолдера:

ФолдерСтруцтуре' loading='lazy' title=


Следећи чланак  –  Јава.ио.СтреамТокенизер Цласс у Јави | Сет 2

Креирај квиз