Question: My code reads in data like this: city name,x,y Calgary 367 661 Edmonton 375 625 ... How would I alter the code so that it

My code reads in data like this:

city name,x,y

Calgary 367 661

Edmonton 375 625

...

How would I alter the code so that it reads in date such as:

city name,x,y Calgary 367 661 Edmonton 375 625 ...

import java.io.*;

public class Program {

private int cityCount; private City cityArray[]; private CompressedArray array; public Program(String fileName, boolean showMap) throws IOException { File file = new File(fileName); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); StringBuffer sb = new StringBuffer(); String line; int i = 0; while((line = br.readLine())!=null) { //Has to be changed so that it reads in values that are on different lines String ar[] = line.split(" "); City arr = new City(ar[0], Integer.parseInt(ar[1]), Integer.parseInt(ar[2])); cityArray[i++] = arr; } fr.close(); }

public City[] getCityArray() { return cityArray; } public void expandCapacity() { City temp[] = cityArray; City cityArray[] = new City[temp.length+3]; for(int i = 0; i < temp.length; i++) cityArray[i] = temp[i]; } public double distBetweenCities(City x,City y) { double dis = Math.sqrt((y.getY() - x.getY()) * (y.getY() - x.getY()) + (y.getX() - x.getX()) * (y.getX() - x.getX())); return dis; } public void compareDistances() { double arr[][]=new double[cityArray.length][cityArray.length]; for (int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++) { arr[i][j] = distBetweenCities(cityArray[i], cityArray[j]); } } } public CompressedArray getArray() { return array; } }

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!