logo

فئة Java StreamTokenizer - المجموعة 1

في جافا StreamTokenizer الصف موجود في حزمة Java.io . يتم استخدامه لتحليل دفق الإدخال عن طريق تقسيمه إلى أجزاء صغيرة تعرف باسم الرموز هذه الرموز تجعل المعالجة أسهل. يمكن أن يكون الرمز عبارة عن كلمة أو رقم أو أي رمز محدد. يمكن لـ Stream Tokenizer التعرف على الأرقام والسلاسل المقتبسة وأنماط التعليقات المختلفة.

ميزات فئة StreamTokenizer:

الميزات الرئيسية لفئة StreamTokenizer مذكورة أدناه:



  • فهو يقسم تدفقات الإدخال إلى رموز مثل الرموز والكلمات والأرقام.
  • وهو يدعم أرقام خطوط التتبع.
  • يمكنه التعامل مع أحرف نهاية السطر كرموز مميزة.
  • ويمكنه أيضًا تحويل رموز الكلمات إلى أحرف صغيرة تلقائيًا.

إعلان فئة StreamTokenizer

إعلان فئة StreamTokenizer هو:

يقوم StreamTokenizer من الفئة العامة بتوسيع الكائن بتنفيذ Serializable

ملحوظة: يقوم بتوسيع الكائن وتنفيذ Serializable.

منشئو فئة StreamTokenizer

تتكون هذه الفئة من مُنشئين يمكننا من خلالهما إنشاء كائنات من هذه الفئة بطرق مختلفة. فيما يلي المنشئات المتوفرة في هذه الفئة:

1. StreamTokenizer (InputStream هو): هذا المنشئ هو مهمل . إنها طريقة قديمة لإنشاء رمز مميز مباشرة من دفق البايت.

بناء الجملة:

StreamTokenizer (InputStream هو)

تثبيت مخضرم

ملحوظة: لا يُنصح بهذا لأنه يعمل على وحدات البايت وليس الأحرف.

2. StreamTokenizer (قارئ ص): هذه هي أفضل طريقة لإنشاء الرمز المميز، فهي تستخدم تدفق الأحرف الذي يتعامل مع النص بشكل صحيح.

بناء الجملة:

StreamTokenizer (قارئ ص)

مثال:

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

ويوضح الجدول أدناه أساليب هذه الفئة.

طريقةوصف
تعليق شار ()يحدد أن الحرف ch يبدأ تعليقًا من سطر واحد. يتم تجاهل كافة الأحرف من حرف التعليق إلى نهاية السطر.
خط()إرجاع رقم السطر الحالي لدفق الإدخال.
إلى سلسلة ()يُرجع تمثيل سلسلة لرمز الدفق الحالي ورقم السطر الذي يحدث فيه.

eolIsSignificant (علامة منطقية)

يحدد ما إذا كان سيتم التعامل مع أحرف نهاية السطر كرموز مميزة مهمة. إذا تم إرجاع أحرف نهاية السطر الحقيقية كرموز مميزة.

عادي شار (كثافة العمليات الفصل)يحدد أن الحرف ch يتم التعامل معه كحرف عادي وليس كرقم كلمة أو حرف تعليق.
الرمز التالي ()يوزع الرمز المميز التالي من دفق الإدخال ويعيد نوعه.
وضع الحالة السفلية ()يحدد ما إذا كانت الرموز المميزة للكلمات سيتم تحويلها تلقائيًا إلى أحرف صغيرة.
عادي شار ()يحدد أن الحرف ch يتم التعامل معه كحرف عادي.
NormalChars()يحدد أن كافة الأحرف الموجودة في النطاق من الأدنى إلى الأعلى يتم التعامل معها كأحرف عادية.


وسنتحدث الآن عن كل طريقة على حدة بالتفصيل:


1. تعليق شار (): يتم استخدام هذه الطريقة لتحديد الحرف الفصل والذي يبدأ عند تعليق سطر واحد ولا يتعرف StreamTokenizer على كل الأحرف من هذا الحرف حتى نهاية السطر.

بناء الجملة:

التعليق الفارغ العامChar(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. تعد هذه الطريقة مفيدة جدًا عندما نريد التحقق من كيفية عمل المعالجة وتصحيح أخطاء البرنامج ويمكننا أيضًا تتبع أرقام الأسطر أثناء وقت الترميز.

بناء الجملة:

الكتان الداخلي العام ()

  • المعلمة: هذه الطريقة لا تأخذ أي معلمة.
  • نوع الإرجاع: تقوم هذه الطريقة بإرجاع قيمة int وهي رقم السطر لدفق الإدخال الحالي.

مثال:

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 (): تقوم هذه الطريقة بإرجاع سلسلة تمثل رمز الدفق الحالي بقيمة الرمز المميز ورقم السطر الذي يستخدمه حاليًا.

بناء الجملة:

سلسلة عامة إلى سلسلة ()

  • المعلمة: هذه الطريقة لا تأخذ أي معلمة.
  • نوع الإرجاع: تقوم هذه الطريقة بإرجاع قيمة سلسلة تمثل رمز الدفق الحالي برقم السطر.

مثال:

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 (نهاية السطر) إلى رمز مميز. إذا كانت العلامة صحيحة، فسيتم التعامل مع كل حرف في نهاية السطر كرمز مميز ويتم تعيين نوع الرمز المميز TT_EOL، ويتم التعامل مع حرف eol الذي يتم تجاهله كمسافة بيضاء.

بناء الجملة:

eolIsSignificant الفراغ العام (علامة منطقية)

  • المعلمة: تأخذ هذه الطريقة قيمة منطقية علَم إذا كان هذا صحيحًا، فسيتم التعامل مع حرف نهاية السطر كرمز مميز أو يتم تجاهله كمسافة بيضاء.
  • نوع الإرجاع: هذه الطريقة لا ترجع أي شيء.

مثال:

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.الرمز التالي (): تقرأ هذه الطريقة الرمز المميز التالي من دفق الإدخال وترجع النوع. يتم تخزين نوع الرمز المميز في ttype مجال. تقوم بإرجاع النوع كقيمة عددية يمكن أن تكون TT_WORD TT_NUMBER وTT_EOL وما إلى ذلك.

بناء الجملة:

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

الإخراج:

متى خرج ويندوز 7
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 يخبرنا هذا البرنامج عن استخدام طريقة token() التالية


6. LowerCaseMod (): تأخذ هذه الطريقة قيمة منطقية علَم القيمة ويتحقق مما إذا كان يجب تحويل الرمز المميز تلقائيًا إلى أحرف صغيرة. إذا كانت العلامة صحيحة، فسيتم تحويل جميع كلمات الرمز المميز إلى أحرف صغيرة أو يتم تعيين الرموز المميزة كما هي ولا ترغب في تحويلها.

بناء الجملة:

الوضع السفلي للفراغ العام (علامة منطقية)

  • المعلمة: يستغرق الأمر منطقيًا علَم قيمة. إذا كان صحيحًا، فسيتم تحويل جميع الرموز المميزة إلى أحرف صغيرة وإذا كان خطأ فلن يتم تحويلها.
  • نوع الإرجاع: هذه الطريقة لا ترجع أي شيء.

مثال:

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()


7.ordinaryChar(): تأخذ هذه الطريقة قيمة int الفصل يجب أن تعامل كشخصية. باستخدام هذه الطريقة يمكننا علاج أ شخصية أ كحرف خاص مثل كلمة رقمية أو مسافة بيضاء.

بناء الجملة:

الفراغ العام العاديChar (int ch)

  • المعلمة: هذه الطريقة تأخذ int واحد الفصل القيمة التي سيتم التعامل معها كحرف.
  • نوع الإرجاع: هذه الطريقة لا ترجع أي شيء.

مثال:

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 بالمحتوى التالي المدرج أدناه:

مرحبًا أيها المهوسون Thissss Issszz حولnormalChar() قامت هذه الطريقة بإزالة 's' من الدفق بأكمله


Livecricket.is

8.ordinarychars(): تحدد هذه الطريقة أنه سيتم التعامل مع جميع الأحرف الموجودة في النطاق من الأدنى إلى الأعلى (ضمنًا) كأحرف عادية وبعد استدعاء هذه الطريقة، لن يتم التعامل مع الأحرف كأحرف خاصة بعد الآن.

بناء الجملة:

الفراغ العام العادي (int low int High)

  • المعلمة: تأخذ هذه الطريقة قيمتين صحيحتين قليل و عالي ( ضمناً) نطاق الحرف الذي تم تحويله إلى حرف خاص.
  • نوع الإرجاع: هذه الطريقة لا ترجع أي شيء.

مثال:

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 بالمحتوى التالي المدرج أدناه:

مرحبًا أيها المهوسون، هذا يتعلق بـnormalChars()


استخدام StreamTokenizer لترميز ملف نصي

تُستخدم فئة StreamTokenizer أيضًا لترميز الملف النصي ونحن هنا نستخدم أساليب فئة Tokenizer.

الخطوة 1: قم أولاً بإنشاء ملف نصي باستخدام .رسالة قصيرة التمديد في نفس الدليل الجذر. هنا قمنا بإنشائه بالاسم Geeks.txt .

ملف نصي' 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;     }   }   }  }  

الإخراج:

مثال الإخراج' loading='lazy' title=


هيكل المجلد:

هيكل المجلد' loading='lazy' title=


المقالة القادمة  -  فئة Java.io.StreamTokenizer في Java | مجموعة 2

إنشاء اختبار