Saturday, November 23, 2013

Java BufferedReader & StreamTokenizer Example

Write a method that will take a string containing integers and return the sum of the numbers present in the string. For example, given the string "10 2 20 30" should print 62.

SOLUTION: 

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.StreamTokenizer;
import java.util.Scanner;

public class BufferedReaderExample {
 public static void main(String[] args){
  System.out.println("Please enter the string:");
  String str = (new Scanner(System.in)).nextLine();
  File file = new File("text.c");
  
  try{
   FileWriter fw = new FileWriter(file);
   fw.write(str);
   fw.close();
   FileReader read = new FileReader(file);
   BufferedReader bf = new BufferedReader(read);
   StreamTokenizer stream = new StreamTokenizer(bf);

   int sum=0;
   while(stream.nextToken()!=StreamTokenizer.TT_EOF){
    if(stream.ttype==StreamTokenizer.TT_NUMBER){
     sum+=stream.nval;
    }
   }
   System.out.println("Sum = "+sum);
  }catch (Exception e) {
   System.out.println("Error!!");
  }
 }
}

No comments:

Post a Comment