logo

Java StreamTokenizer Sınıfı - Set 1

Java'da StreamTokenizer sınıf mevcut java.io paketi . Bir giriş akışını küçük parçalara bölerek ayrıştırmak için kullanılır. jetonlar bu jetonlar işlemi kolaylaştırır. Bir jeton bir kelime, bir sayı veya herhangi bir özel sembol olabilir. Stream Tokenizer, alıntılanan dizeleri ve çeşitli yorum stillerini tanıyabilir.

java matematik rastgele

StreamTokenizer Sınıfının Özellikleri:

StreamTokenizer sınıfının temel özellikleri aşağıda listelenmiştir:



  • Giriş akışlarını semboller, kelimeler ve sayılar gibi belirteçlere böler.
  • Satır numaralarını takip etmeyi destekler.
  • Satır sonu karakterlerini belirteç olarak değerlendirebilir.
  • Ayrıca kelime belirteçlerini otomatik olarak küçük harfe dönüştürebilir.

StreamTokenizer Sınıfının Bildirgesi

StreamTokenizer sınıfının bildirimi şöyledir:

genel sınıf StreamTokenizer, Nesnenin Seri hale getirilebilir uygulamasını genişletiyor

Not: Object'i genişletir ve Serileştirilebilir'i uygular.

StreamTokenizer Sınıfının Yapıcıları

Bu sınıf, yardımıyla bu sınıfın nesnelerini farklı şekillerde oluşturabileceğimiz iki kurucudan oluşur. Bu sınıfta mevcut olan yapıcılar şunlardır:

1. StreamTokenizer(InputStream): Bu yapıcı kullanımdan kaldırıldı . Doğrudan bayt akışından tokenizer oluşturmanın eski bir yoludur.

Sözdizimi:

StreamTokenizer(InputStream)

Not: Bu önerilmez çünkü karakterlerle değil baytlarla çalışır.

2. StreamTokenizer(Okuyucu r): Bu, tokenizer oluşturmanın en iyi yoludur; metni doğru şekilde işleyen bir karakter akışı kullanır.

Sözdizimi:

StreamTokenizer(Okuyucu r)

Örnek:

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

Çıkış
Word: Hello Number: 123.0 


Java StreamTokenizer Yöntemleri

Aşağıdaki tablo bu sınıfın yöntemlerini göstermektedir.

YöntemTanım
yorumChar()Ch karakterinin tek satırlık bir açıklama başlattığını belirtir. Yorum karakterinden satırın sonuna kadar tüm karakterler dikkate alınmaz.
astar()Giriş akışının geçerli satır numarasını döndürür.
toString()Geçerli akış belirtecinin dize temsilini ve oluştuğu satır numarasını döndürür.

eolIsSignificant(boole bayrağı)

Satır sonu karakterlerinin önemli belirteçler olarak değerlendirilip değerlendirilmeyeceğini belirler. Satır sonu karakterleri gerçekse belirteç olarak döndürülür.

sıradanChar(int ch)Ch karakterinin bir sözcük numarası veya yorum karakteri olarak değil, sıradan bir karakter olarak değerlendirileceğini belirtir.
sonrakiToken()Giriş akışındaki bir sonraki belirteci ayrıştırır ve türünü döndürür.
altCaseMode()Kelime belirteçlerinin otomatik olarak küçük harfe dönüştürülüp dönüştürülmeyeceğini belirler.
sıradanChar()Ch karakterinin sıradan bir karakter olarak değerlendirileceğini belirtir.
sıradanKarakterler()Düşükten yükseğe kadar olan aralıktaki tüm karakterlerin sıradan karakterler olarak değerlendirileceğini belirtir.


Şimdi her yöntemi tek tek ayrıntılı olarak tartışacağız:


1. yorumChar(): Bu yöntem karakteri belirtmek için kullanılır. ch tek satırlık yorumda başlar ve bu karakterden satırın sonuna kadar olan tüm karakterler StreamTokenizer tarafından tanınmaz.

Sözdizimi:

genel geçersiz yorumChar(int ch)

  • Parametre: Bu yöntem tek bir tamsayı değeri alır ch bundan sonra tüm karakterler göz ardı edilir
  • İade Türü: Bu yöntem hiçbir şey döndürmez.

Örnek:

dizi ekleme elemanları java
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;  }  }  } } 

Çıkış:

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.

Not: 'ABC.txt' dosyası mevcut olmadığından bu program başarıyla çalışmayacak. Kodu sistemde test etmek istiyorsak ABC.txt dosya adını oluşturmamız yeterlidir.

Aşağıda listelenen içeriğe sahip bir ABC.txt dosyası oluşturun:

Programcılar 1 2 3 İnekler Merhaba bir Program burada anlatılıyor dostlarım.


2. satır(): Bu yöntem, StreamTokenizer tarafından işlenen geçerli satır numarasını döndürür. Bu yöntem, işlemenin nasıl çalıştığını kontrol etmek istediğimizde programdaki hata ayıklamayı yapmak istediğimizde çok kullanışlıdır ve ayrıca tokenizasyon sırasında satır numaralarını da takip edebiliriz.

Sözdizimi:

halka açık int keten()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İade Türü: Bu yöntem, geçerli giriş akışının satır numarasını int olarak döndürür.

Örnek:

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

Çıkış:

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(): Bu yöntem, geçerli akış belirtecini, belirteç değeri ve o anda kullanmakta olduğu satır numarasıyla temsil eden bir dize döndürür.

Sözdizimi:

public String toString()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İade Türü: Bu yöntem, satır numarasıyla birlikte geçerli akış belirtecini temsil eden bir dize değeri döndürür.

Örnek:

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

Çıkış:

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(): Bu yöntem hiçbir şey döndürmez ancak EOL (Satır Sonu) karakterinin simgeleştirilmesi gerekip gerekmediğini kontrol etmek için kullanılır. Bayrak doğruysa, her satır sonu karakteri bir belirteç olarak ele alınır ve TT_EOL belirteç türüne atanır, eol karakteri göz ardı edilir ve boşluk olarak değerlendirilir.

Sözdizimi:

public void eolIsSignificant(boole bayrağı)

  • Parametre: Bu yöntem bir boole değeri alır bayrak eğer doğruysa, satır sonu karakteri a belirteci olarak kabul edilir veya boşluk olarak göz ardı edilir.
  • İade Türü: Bu yöntem hiçbir şey döndürmez.

Örnek:

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

Çıkış:

alfa beta budama
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

Not: 'ABC.txt' dosyası mevcut olmadığından bu program başarıyla çalışmayacak. Kodu sistemde test etmek istiyorsak ABC.txt dosya adını oluşturmamız yeterlidir.

Aşağıda listelenen içeriğe sahip bir ABC.txxt dosyası oluşturun:

1 İnek 2 3 İnek İçin


5. nextToken(): Bu yöntem, giriş akışından bir sonraki belirteci okur ve türü döndürür. Belirtecin türü, tip alan. Türü, TT_WORD TT_NUMBER ve TT_EOL vb. olabilen bir tamsayı değeri olarak döndürür.

Sözdizimi:

public int nextToken()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İade Türü: Bu yöntem şunu döndürür: int belirteç türünün değeri.

Örnek:

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

Çıkış:

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

Not: 'ABC.txt' dosyası mevcut olmadığından bu program başarıyla çalışmayacak. Kodu sistemde test etmek istiyorsak ABC.txt dosya adını oluşturmamız yeterlidir.

Aşağıda listelenen içeriğe sahip bir ABC.txt dosyası oluşturun:

1 Bu program 2'ye 3 next token() yönteminin kullanımı hakkında bilgi verir


6. LowerCaseMod(): Bu yöntem bir boole değeri alır bayrak değer ve belirtecin otomatik olarak küçük harfe dönüştürülmesi gerekip gerekmediğini kontrol eder. Bayrak doğruysa, jetonun tüm kelimeleri küçük harfe dönüştürülür veya aksi takdirde jetonlar olduğu gibi ayarlanır ve onları dönüştürmek istemez.

Sözdizimi:

public void LowerCaseMode(boole bayrağı)

  • Parametre: Bir boole değeri alır bayrak değer. Doğruysa tüm jetonlar küçük harfe dönüştürülür ve yanlışsa dönüştürülmez.
  • İade Türü: Bu yöntem hiçbir şey döndürmez.

Örnek:

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

Çıkış:

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

Not: 'ABC.txt' dosyası mevcut olmadığından bu program başarıyla çalışmayacak. Kodu sistemde test etmek istiyorsak ABC.txt dosya adını oluşturmamız yeterlidir.

Aşağıda listelenen içeriğe sahip bir ABC.txt dosyası oluşturun:

Merhaba Meraklılar Bu LowerCaseMode() ile İlgili


7. sıradanChar(): Bu yöntem bir int değeri alır ch bir karakter olarak ele alınmalıdır. Bu yöntemi kullanarak tedavi edebiliriz karakter A sayı sözcüğü veya boşluk gibi özel karakter olarak.

Sözdizimi:

tamsayılara dize

public void sıradanChar(int ch)

  • Parametre: Bu yöntem tek bir int alır ch karakter olarak değerlendirilecek değer.
  • İade Türü: Bu yöntem hiçbir şey döndürmez.

Örnek:

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

Çıkış:

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

Not: 'ABC.txt' dosyası mevcut olmadığından bu program başarıyla çalışmayacak. Kodu sistemde test etmek istiyorsak ABC.txt dosya adını oluşturmamız yeterlidir.

Aşağıda listelenen içeriğe sahip bir ABC.txt dosyası oluşturun:

Merhaba İnekler Thissss Issszz sıradanChar() hakkında Bu yöntem, Akışın tamamından 's'yi kaldırdı


ffilmler

8. sıradan Karakterler(): Bu yöntem, düşükten yükseğe (dahil) kadar olan aralıktaki tüm karakterlerin sıradan karakterler olarak değerlendirileceğini ve bu yöntem çağrıldıktan sonra karakterlerin artık özel karakterler olarak değerlendirilmeyeceğini belirtir.

Sözdizimi:

public void sıradanChars(int low int high)

  • Parametre: Bu yöntem iki tam sayı değeri alır Düşük Ve yüksek ( dahil) özel bir karaktere dönüştürülen karakter aralığı.
  • İade Türü: Bu yöntem hiçbir şey döndürmez.

Örnek:

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

Çıkış:

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

Not: 'ABC.txt' dosyası mevcut olmadığından bu program başarıyla çalışmayacak. Kodu sistemde test etmek istiyorsak ABC.txt dosya adını oluşturmamız yeterlidir.

Aşağıda listelenen içeriğe sahip bir ABC.txt dosyası oluşturun:

Merhaba İnekler Bu sıradanChars() ile ilgili


Bir Metin Dosyasını Tokenleştirmek İçin StreamTokenizer'ı Kullanma

StreamTokenizer sınıfı ayrıca metin dosyasını tokenize etmek için de kullanılır ve burada Tokenizer sınıfı yöntemlerinin yöntemlerini kullanıyoruz.

1. Adım: İlk önce şunu içeren bir metin dosyası oluşturun: .txt Aynı kök dizindeki uzantı. İşte onu bu isimle yarattık Geeks.txt .

MetinDosyası' title=



Adım 2: Şimdi bir Java dosyası oluşturun ve metin dosyasında bulunan metin verilerini tokenize edecek kodu yazın.

Geeks.java dosyası:

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

Çıkış:

ÇıkışÖrneği' loading='lazy' title=


Klasör Yapısı:

Klasör Yapısı' loading='lazy' title=


Sonraki Makale  –  Java'da Java.io.StreamTokenizer Sınıfı | 2'yi ayarla

Test Oluştur