Question: I keep getting error message when I try to run TestUSCrime,java. The message says TestUSCrime.java:1: error: illegal character: 'u00bb' (the next thing is a weird

I keep getting error message when I try to run TestUSCrime,java. The message says TestUSCrime.java:1: error: illegal character: '\u00bb' (the next thing is a weird squigly shape), the second error is exactly the same except it has '\u00bf' followed by the same weird squiggle.

import java.io.File;

import java.io.FileNotFoundException;

import java.util.Scanner;

public class TestUSCrime { static Scanner input = new Scanner(System.in);

public static void main(String[] args) { long startTime = System.currentTimeMillis(); long endTime = 0; System.out.println("*** Welcome to the US Crime Statistical Application ***"); if (args.length != 1) { System.out.println("Usage: \"java UserCrimeStatsApp Crime.csv"); return; }

USCrimeClass[] crimeData = readFile(args[0]);

String choice; while (true) {

String menu = " Enter the number of the question you want answered. Enter Q to quit the program : "

+ "1. What were the percentages in population growth for each consecutive year from 1994 2013? "

+ "2. What year was the Murder rate the highest? "

+ "3. What year was the Murder rate the lowest? "

+ "4. What year was the Robbery rate the highest? "

+ "5. What year was the Robbery rate the lowest? " + "Q. Quit the program";

System.out.println(menu);

choice = chooseOption();

System.out.println();

switch (choice) { case "1":

getPercentage(crimeData);

break;

case "2":

System.out.println("The Murder rate was highest in " + popMurderRate(crimeData));

break;

case "3":

System.out.println("The Murder rate was lowest in " + lowestMurderRate(crimeData));

break;

case "4":

System.out.println("The Robbery rate was highest in " + getHighRR(crimeData));

break;

case "5":

System.out.println("The Robbery rate was lowest in " + getLwRR(crimeData));

break; case "Q":

System.out.println("Thank you for trying the US Crimes Statistics Program.");

endTime = System.currentTimeMillis();

System.out.println("Elapsed time in seconds was: " + (endTime - startTime) / 1000);

return;

default:

System.out.println("Error: Invalid choice selected!! Try again. ");

break;

}

}

}

/*** * * @param filename

* @return

*/ public static USCrimeClass[] readFile(String filename) {

USCrimeClass[] data = new USCrimeClass[20];

int noLine = 0;

String singleLine;

try {

try ( // readFile file Scanner console = new Scanner(new File(filename))) { console.nextLine(); while (console.hasNext()) { singleLine = console.nextLine(); String[] crimeData = singleLine.split(","); data[noLine] = new USCrimeClass(Integer.parseInt(crimeData[0])); data[noLine].setRobberyRate(Float.parseFloat(crimeData[9])); data[noLine].setPopulation(Integer.parseInt(crimeData[1])); data[noLine].setMurderRate(Float.parseFloat(crimeData[5])); noLine++; } }

} catch (FileNotFoundException e) {

System.out.println(e);

}

return data;

}

public static String chooseOption() {

String choice;

System.out.print(" Enter your selection: ");

choice = input.next();

return choice; }

/*** * * @param crimeData

* @return

*/ public static int popMurderRate(USCrimeClass[] crimeData) {

int year = 0;

float maxRate = 0;

for (USCrimeClass crime : crimeData) {

if (crime.getMurderRate() > maxRate) {

maxRate = crime.getMurderRate();

year = crime.getYear();

}

}

return year;

}

/***

* * @param crimeData

* @return

*/

public static int lowestMurderRate(USCrimeClass[] crimeData) {

int year = 0;

float minMurderrate = crimeData[0].getMurderRate();

for (USCrimeClass crime : crimeData) {

if (crime.getMurderRate() < minMurderrate) {

minMurderrate = crime.getMurderRate();

year = crime.getYear();

}

}

return year;

}

/***

* * @param crimeData

* @return

*/

public static int getHighRR(USCrimeClass[] crimeData) {

int year = 0;

float maxRate = 0;

for (USCrimeClass crime : crimeData) {

if (crime.getRobberyRate() > maxRate) {

maxRate = crime.getRobberyRate();

year = crime.getYear();

}

}

return year;

}

/****

* * @param crimeData

* @return

*/

public static int getLwRR(USCrimeClass[] crimeData) {

int year = 0;

float minMurderrate = crimeData[0].getRobberyRate();

for (USCrimeClass crime : crimeData) {

if (crime.getRobberyRate() < minMurderrate) {

minMurderrate = crime.getRobberyRate();

year = crime.getYear();

}

}

return year;

}

/***

* * @param crimeData

*/

public static void getPercentage(USCrimeClass[] crimeData) {

float growth;

for (int i = 0; i < crimeData.length - 1; i++) {

growth = 100 * (float) (crimeData[i + 1].getPopulation() - crimeData[i].getPopulation())

/ crimeData[i].getPopulation();

System.out.println("[" + crimeData[i].getYear() + "-" + crimeData[i + 1].getYear() + "]: "

+ String.format("%.4f", growth) + "%");

}

}

}

This code seems to run fine.

public class USCrimeClass {

private float murderRate;

private float robberyRate;

private int populationGrowth;

private int year;

/**

* * @param year

*/

public USCrimeClass(int year) {

this.year = year;

}

public float getMurderRate() {

return murderRate;

}

public void setMurderRate(float murderRate) {

this.murderRate = murderRate;

}

public float getRobberyRate() {

return robberyRate;

}

/***

* * @param robberyRate

*/

public void setRobberyRate(float robberyRate) {

this.robberyRate = robberyRate;

}

public int getPopulation() {

return populationGrowth;

}

public void setPopulation(int populationGrowth) {

this.populationGrowth = populationGrowth;

}

public int getYear() {

return year;

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!