Using Scanner to read and tokenize

2 posts / 0 new
Last post
heartin
Using Scanner to read and tokenize

Use Scanner class to read a file of integers and find the average of each line and add into a 1D array of size equal to number of lines. There will be 5 lines with 5 integers per line seperated by spaces in the input file.

Additional Requirements

Need to have two methods which is not dependent on any static/instance variable:

  • public static int[] arr readIntAndInsertArr(String filename) - receives a file name as input, reads it, uses findAverage to find average of a line.
  • public static int findAverage(String line) - finds average of a String of integers seperated by spaces.

Example Input file contents

1 2 3 4 5

3 4 5 8  9

6 7 8 9 7

4 5 6 7 8

22 33 44 5 6

Hint

You need to add the average of each line into an array. For example, arr[0] will be 3, which is calculated as (1+2+3+4+5)/5.

Since there are 5 lines array size should be 5.

ALL THE BEST !!!

Was it useful?
sneha
Program to read and tokenize using Scanner

package com.javajee.Utils;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class UseScanner {

    public static void main(String[] args) throws IOException {
    
        int[] Arr=new int[5];        
        Arr=readIntAndInsertArr("integer.txt");
        printValues(Arr);
    }
    
    public static int[] readIntAndInsertArr(String filename) throws IOException{
        File file=new File(filename);
        Scanner sc=new Scanner(file);
        int[] arr=new int[5];
        int k=0;
        while(sc.hasNextLine()){    
            arr[k]=findAverage(sc.nextLine());            
            k++;
        }
        return arr;
    }

    public static int findAverage(String line){
        int total=0;
        Scanner s=new Scanner(line);
        while(s.hasNextLine()){            
            total=total+s.nextInt();
            }        
        int average=total/5;
        return average;
    }
    
    public static void printValues(int[] A){
        for(int i=0;i<5;i++){
            System.out.println(A[i]);
        }
    }

}
 

Was it useful?

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) ArrayLists (1) Arrays (2) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (53) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (8) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (12) Java Programmer 2 (8) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) resources (1) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)