Java - StreamTokenizer lowerCaseMode(boolean fl) method



Description

The Java StreamTokenizer lowerCaseMode(boolean fl) method determines whether or not word token are automatically lowercased. If the flag argument is true, then the value in the sval field is lowercased whenever a word token is returned (the ttype field has the value TT_WORD by the nextToken method of this tokenizer. If the flag argument is false, then the sval field is not modified.

Declaration

Following is the declaration for java.io.StreamTokenizer.lowerCaseMode(boolean fl) method.

public void lowerCaseMode(boolean fl)

Parameters

fl − true indicates that all word tokens should be lowercased.

Return Value

This method does not return a value.

Exception

NA

Example - Usage of StreamTokenizer lowerCaseMode(boolean fl) method

The following example shows the usage of StreamTokenizer lowerCaseMode(boolean fl) method.

StreamTokenizerDemo.java

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Reader;
import java.io.StreamTokenizer;

public class StreamTokenizerDemo {
   public static void main(String[] args) {      
      String text = "Hello. This is a text \n that will be split "
         + "into tokens. 1 + 1 = 2";
         
      try {
         // create a new file with an ObjectOutputStream
         FileOutputStream out = new FileOutputStream("test.txt");
         ObjectOutputStream oout = new ObjectOutputStream(out);

         // write something in the file
         oout.writeUTF(text);
         oout.flush();

         // create an ObjectInputStream for the file we created before
         ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.txt"));

         // create a new tokenizer
         Reader r = new BufferedReader(new InputStreamReader(ois));
         StreamTokenizer st = new StreamTokenizer(r);

         // set lower case mode on
         st.lowerCaseMode(true);

         // print the stream tokens
         boolean eof = false;
         
         do {
            int token = st.nextToken();
            
            switch (token) {
               case StreamTokenizer.TT_EOF:
                  System.out.println("End of File encountered.");
                  eof = true;
                  break;
                  
               case StreamTokenizer.TT_EOL:
                  System.out.println("End of Line encountered.");
                  break;
                  
               case StreamTokenizer.TT_WORD:
                  System.out.println("Word: " + st.sval);
                  break;
                  
               case StreamTokenizer.TT_NUMBER:
                  System.out.println("Number: " + st.nval);
                  break;
                  
               default:
                  System.out.println((char) token + " encountered.");
                  
                  if (token == '!') {
                     eof = true;
                  }
            }
         } while (!eof);
         
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Line Number:1
Word: hello.
Word: this
Word: is
Word: a
Word: text
Word: that
Word: will
Word: be
Word: split
Word: into
Word: tokens.
Number: 1.0
+ encountered.
Number: 1.0
= encountered.
Number: 2.0
End of File encountered.

Example - Convert all words to lowercase

The following example shows the usage of StreamTokenizer lowerCaseMode(boolean fl) method.

StreamTokenizerDemo.java

package com.tutorialspoint;

import java.io.IOException;
import java.io.Reader;
import java.io.StreamTokenizer;
import java.io.StringReader;

public class StreamTokenizerDemo {
   public static void main(String[] args) throws IOException {
      String input = "Java PYTHON Cpp";

      Reader reader = new StringReader(input);
      StreamTokenizer tokenizer = new StreamTokenizer(reader);

      tokenizer.lowerCaseMode(true); // convert all word tokens to lowercase

      System.out.println("Tokens (converted to lowercase):");
      while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
         if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
            System.out.println("Word: " + tokenizer.sval);
         }
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Tokens (converted to lowercase):
Word: java
Word: python
Word: cpp

Explanation

  • The words Java, PYTHON, and Cpp are automatically converted to java, python, and cpp.

  • This is helpful for case-insensitive parsing.

Example - Case preserved (lowerCaseMode is false)

The following example shows the usage of StreamTokenizer lowerCaseMode(boolean fl) method.

StreamTokenizerDemo.java

package com.tutorialspoint;

import java.io.IOException;
import java.io.Reader;
import java.io.StreamTokenizer;
import java.io.StringReader;

public class StreamTokenizerDemo {
   public static void main(String[] args) throws IOException {
      String input = "Java PYTHON Cpp";

      Reader reader = new StringReader(input);
      StreamTokenizer tokenizer = new StreamTokenizer(reader);

      tokenizer.lowerCaseMode(false); // preserve original case

      System.out.println("Tokens (original case preserved):");
      while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
         if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
            System.out.println("Word: " + tokenizer.sval);
         }
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Tokens (original case preserved):
Word: Java
Word: PYTHON
Word: Cpp

Explanation

  • The original case of the words is preserved.

  • This is the default behavior of StreamTokenizer.

java_io_streamtokenizer.htm
Advertisements