Answered step by step
Verified Expert Solution
Link Copied!
Question
1 Approved Answer

I can't find the mistake in the program import java.io.*; import java.util.*; class WeatherReporter { //main() begins public static void main(String[] args) { //Scanner class

I can't find the mistake in the program

import java.io.*;

import java.util.*;

class WeatherReporter

{

//main() begins

public static void main(String[] args)

{

//Scanner class object to read from console

Scanner scan = new Scanner(System.in);

//Input file name

System.out.println("Enter the input file name");

String fileName = scan.nextLine();

//File class object with file name as fileName

File file = new File(fileName);

//scan = new Scanner(file); can throw FileNotFoundException if the specified file is not at the location

try

{

//Scanner class object to read from file

scan = new Scanner(file);

//Loop runs until there are no more lines in the file

while (scan.hasNextLine())

//Read a line from the file and pass it as parameter to processLine() method

processLine(scan.nextLine());

}

//Catches FileNotFoundException catch (FileNotFoundException e)

{

e.printStackTrace();

}

}

//main() ends

//Function to print the line in the given format which takes a string as parameter

public static void processLine(String line)

{

//Variable to store the indices of spaces in the line

int space1 = line.indexOf(" "); //Returns the index of 1st occurrence of " " from index 0

int space2 = line.indexOf(" ", space1 + 1); //Returns the index of 1st occurrence of " " from index space1 + 1

int space3 = line.indexOf(" ", space2 + 1); //Returns the index of 1st occurrence of " " from index space2 + 1

int space4 = line.indexOf(" ", space3 + 1); //Returns the index of 1st occurrence of " " from index space3 + 1

//Print the date

//Month is from index 4 to 5, date is from index 6 to 7 and year is from index 0 to 3

//line.substring(i, j); returns a substring out of line string from index i to j - 1

System.out.print(line.substring(4, 6) + "/" + line.substring(6, 8) + "/" + line.substring(0, 4));

//Print lowest temperature

//low stores the lowest temperature which is from index space3 + 1 to space4 - 1

//String returned from substring() is converted to float using Float.parseFloat()

float low = Float.parseFloat(line.substring(space3 + 1, space4));

System.out.print(" Low: " + low);

//Print highest temperature

//high stores the highest temperature which is from index space2 + 1 to space3 - 1

//String returned from substring() is converted to float using Float.parseFloat()

float high = Float.parseFloat(line.substring(space2 + 1, space3));

System.out.print(" High: " + high);

//Print rain

//rain stores "no" if the 5th last character in the line is '0', otherwise, "yes"

String rain = line.charAt(line.length() - 5) == '0' ? "no" : "yes";

System.out.print(" Rain: " + rain);

//Print snow

//snow stores "no" if the 4th last character in the line is '0', otherwise, "yes"

String snow = line.charAt(line.length() - 4) == '0' ? "no" : "yes";

System.out.print(" Snow: " + snow);

System.out.println();

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image
Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Introduction to Java Programming, Comprehensive Version

Authors: Y. Daniel Liang

10th Edition

133761312, 978-0133761313

More Books

Students explore these related Programming questions

Question

1. What factors lead to criminal behaviour?

Answered: 3 weeks ago