Using Scanner to read and tokenize

2 posts / 0 new
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.

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 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 !!!

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;
printValues(Arr);
}

public static int[] readIntAndInsertArr(String filename) throws IOException{
File file=new File(filename);
Scanner sc=new Scanner(file);
int[] arr=new int;
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?