logo

Клас Java StreamTokenizer - набір 1

На Java StreamTokenizer клас присутній в пакет java.io . Він використовується для аналізу вхідного потоку шляхом розбиття його на невеликі фрагменти, відомі як жетони ці маркери полегшують обробку. Токеном може бути слово, число або будь-який конкретний символ. Stream Tokenizer може розпізнавати числа в лапках і різні стилі коментарів.

Особливості класу StreamTokenizer:

Основні функції класу StreamTokenizer перераховані нижче:



  • Він розбиває вхідні потоки на маркери, такі як символи, слова та числа.
  • Він підтримує відстеження номерів рядків.
  • Він може розглядати символи кінця рядка як маркери.
  • Він також може автоматично перетворювати лексеми слів на малі літери.

Оголошення класу StreamTokenizer

Оголошення класу StreamTokenizer таке:

публічний клас StreamTokenizer розширює Object, реалізує Serializable

Примітка: Він розширює Object і реалізує Serializable.

Конструктори класу StreamTokenizer

Цей клас складається з двох конструкторів, за допомогою яких ми можемо створювати об’єкти цього класу різними способами. У цьому класі доступні такі конструктори:

1. StreamTokenizer (InputStream це): Цей конструктор є застарілий . Це старіший спосіб створення токенізера безпосередньо з потоку байтів.

Синтаксис:

StreamTokenizer (InputStream є)

Примітка: Це не рекомендується, оскільки воно працює з байтами, а не з символами.

2. StreamTokenizer (Reader r): Це найкращий спосіб створити токенізер, він використовує потік символів, який правильно обробляє текст.

Синтаксис:

StreamTokenizer (Reader r)

приклад:

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 


Методи Java StreamTokenizer

Таблиця нижче демонструє методи цього класу.

методопис
commentChar()Вказує, що символ ch починає однорядковий коментар. Усі символи від символу коментаря до кінця рядка ігноруються.
лінія()Повертає поточний номер рядка вхідного потоку.
toString()Повертає рядкове представлення поточного маркера потоку та номер рядка, у якому він зустрічається.

eolIsSignificant(логічний прапор)

Визначає, чи розглядаються символи кінця рядка як значущі маркери. Якщо справжні символи кінця рядка повертаються як маркери.

колекція java
звичайний символ (int ch)Вказує, що символ ch розглядається як звичайний символ, а не як номер слова чи символ коментаря.
nextToken()Розбирає наступний маркер із вхідного потоку та повертає його тип.
нижній регістрMode()Визначає, чи лексеми слів автоматично перетворюються на малі літери.
звичайнийChar()Вказує, що символ ch розглядається як звичайний символ.
звичайнийChars()Вказує, що всі символи в діапазоні від нижнього до високого розглядаються як звичайні символи.


Тепер ми докладніше обговоримо кожен метод окремо:


1. commentChar(): Цей метод використовується для визначення символу гл який починається з одного рядкового коментаря, і всі символи від цього символу до кінця рядка не розпізнаються StreamTokenizer.

Синтаксис:

абстрактний клас на java

public void commentChar(int ch)

  • Параметр: Цей метод приймає одне ціле значення гл після цього всі символи ігноруються
  • Тип повернення: Цей метод нічого не повертає.

приклад:

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.

Примітка: Ця програма не працюватиме успішно, оскільки файл "ABC.txt" не існує. Якщо ми хочемо протестувати код у системі, нам просто потрібно створити файл з назвою ABC.txt.

Створіть файл ABC.txt із наведеним нижче вмістом:

Програмісти 1 2 3 Виродки Привіт, тут описано програму, друзі.


2. рядок(): Цей метод повертає номер поточного рядка, який обробляється StreamTokenizer. Цей метод дуже корисний, коли ми хочемо перевірити, як працює обробка, налагодити програму, і ми також можемо відстежувати номери рядків під час токенізації.

Синтаксис:

public int linen()

  • Параметр: Цей метод не приймає жодних параметрів.
  • Тип повернення: Цей метод повертає ціле значення номера рядка поточного вхідного потоку.

приклад:

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. toString(): Цей метод повертає рядок, який представляє поточний маркер потоку зі значенням маркера та номером рядка, який він зараз використовує.

Синтаксис:

public String toString()

  • Параметр: Цей метод не приймає жодних параметрів.
  • Тип повернення: Цей метод повертає рядкове значення, що представляє поточний маркер потоку з номером рядка.

приклад:

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. eolIsSignificant(): Цей метод нічого не повертає, але використовується для перевірки того, чи потрібно символ EOL (кінець рядка) токенізувати. Якщо прапорець має значення true, тоді кожен символ кінця рядка розглядається як маркер і йому призначається тип маркера TT_EOL, символ eol ігнорується, розглядається як пробіл.

Синтаксис:

як підключити навушники beats

public void eolIsSignificant(логічний прапор)

  • Параметр: Цей метод приймає логічне значення прапор якщо це істина, символ кінця рядка розглядається як маркер a або ігнорується як пробіл.
  • Тип повернення: Цей метод нічого не повертає.

приклад:

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

Примітка: Ця програма не працюватиме успішно, оскільки файл "ABC.txt" не існує. Якщо ми хочемо протестувати код у системі, нам просто потрібно створити файл з назвою ABC.txt.

Створіть файл ABC.txxt із наведеним нижче вмістом:

1 гіки 2 для 3 гіків


5. nextToken(): Цей метод читає наступний маркер із вхідного потоку та повертає тип. Тип маркера зберігається в ttype поле. Він повертає тип як ціле число, яке може бути TT_WORD, TT_NUMBER і TT_EOL тощо.

Синтаксис:

public int nextToken()

  • Параметр: Цей метод не приймає жодних параметрів.
  • Тип повернення: Цей метод повертає внутр значення типу маркера.

приклад:

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

Примітка: Ця програма не працюватиме успішно, оскільки файл "ABC.txt" не існує. Якщо ми хочемо протестувати код у системі, нам просто потрібно створити файл з назвою ABC.txt.

Створіть файл ABC.txt із наведеним нижче вмістом:

1 Ця програма розповідає 2 про використання методу next token().


6. lowerCaseMod(): Цей метод приймає логічне значення прапор значення та перевіряє, чи потрібно маркер автоматично перетворювати на нижній регістр. Якщо прапорець істинний, усі слова маркера перетворюються на малі літери, інакше маркери встановлюються як є й не хочуть їх перетворювати.

Синтаксис:

public void lowerCaseMode(булевий прапор)

  • Параметр: Це вимагає логічного значення прапор значення. Якщо воно істинне, то всі маркери перетворюються на малі літери, а якщо хибне, то вони не будуть перетворені.
  • Тип повернення: Цей метод нічого не повертає.

приклад:

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

Примітка: Ця програма не працюватиме успішно, оскільки файл "ABC.txt" не існує. Якщо ми хочемо протестувати код у системі, нам просто потрібно створити файл з назвою ABC.txt.

Створіть файл ABC.txt із наведеним нижче вмістом:

Привіт, гіки, це про LowerCaseMode()


підключення java mysql

7. звичайнийChar(): Цей метод приймає значення int гл слід розглядати як характер. За допомогою цього методу можна лікувати a характер a як спеціальний символ, як-от цифрове слово або пробіл.

Синтаксис:

public void звичайний символ (int ch)

  • Параметр: Цей метод бере один інт гл значення, яке буде розглядатися як символ.
  • Тип повернення: Цей метод нічого не повертає.

приклад:

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

Примітка: Ця програма не працюватиме успішно, оскільки файл "ABC.txt" не існує. Якщо ми хочемо протестувати код у системі, нам просто потрібно створити файл з назвою ABC.txt.

Створіть файл ABC.txt із наведеним нижче вмістом:

Hello Geeks Thissss Issszz Про звичайнийChar() Цей метод видаляє «s» з усього потоку

123 фільм


8. звичайнийChars(): Цей метод визначає, що всі символи в діапазоні від низького до високого (включно) розглядатимуться як звичайні символи, і після виклику цього методу символи більше не розглядатимуться як спеціальні символи.

Синтаксис:

public void звичайні символи (int низький int високий)

  • Параметр: Цей метод приймає два цілих значення низький і високий ( включно) діапазон символу, який перетворюється на спеціальний символ.
  • Тип повернення: Цей метод нічого не повертає.

приклад:

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

Примітка: Ця програма не працюватиме успішно, оскільки файл "ABC.txt" не існує. Якщо ми хочемо протестувати код у системі, нам просто потрібно створити файл з назвою ABC.txt.

Створіть файл ABC.txt із наведеним нижче вмістом:

Hello Geeks Це про звичайнийChars()


Використання StreamTokenizer для токенізації текстового файлу

Клас StreamTokenizer також використовується для токенізації текстового файлу, і тут ми використовуємо методи класу Tokenizer.

крок 1: Спочатку створіть текстовий файл за допомогою .txt розширення в тому самому кореневому каталозі. Ось ми створили його з назвою Geeks.txt .

TextFile' title=



Крок 2: Тепер створіть файл Java і запишіть код для токенізації текстових даних, наявних у текстовому файлі.

Файл 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;     }   }   }  }  

Вихід:

OutputExample' loading='lazy' title=


Структура папки:

FolderStructure' loading='lazy' title=


Наступна стаття  –  Клас Java.io.StreamTokenizer у Java | Набір 2

Створіть вікторину