1
我正在爲讀取CSV文件的類創建程序,並對文件中給出的數據執行各種數學公式。 CSV文件是在設置:雖然文件讀取器的循環麻煩?
- longitude1,latitude1,timeStamp1
- longitude2,latitude2,timeStamp2
- longitude3,latitude3,timeStamp3
(並繼續對約100個不同的座標)。
現在我專注於經度值---我很難讓我的while循環執行我也需要的操作。我需要能夠讓程序從經度1減去經度2(其中lon1和lon2在我們經過循環時最終要經過每個座標)。
我遇到的問題是循環沒有創建'重疊'(缺少更好的術語)。它在前兩個座標上執行數學運算,然後跳到下兩個數據...從而跳過其他所有操作。
[即:在循環中執行:lon2 - lon1和lon4-lon3但跳過lon3-lon2]
我有我的問題在於我,而循環的開始預感,但我真的穿上」不知道如何解決它。我會喜歡一些幫助。 以下是我目前的代碼:
import java.io.*;
import java.util.*;
public class SearchAndR {
public static void main(String[] args) throws FileNotFoundException {
// creates a Scanner called "keyboard" to read in the file name
Scanner keyboard = new Scanner(System.in);
// prompts user for file name
System.out.println("Enter the name of the file you intend to read in");
// Stores file name as a string so that we may read it in
String file = keyboard.nextLine();
// creates a new Scanner called fr(short for filereader) so we can read
// in the file
// then we create a File object using the constructor new with the class
// "File"
// this takes in our string "file" as a parameter to read it in
// reading in our file object to the scanner
Scanner fr = new Scanner(new File(file));
// Creating format for hike1.csv file
System.out.println("--- Hike Analysis ---");
System.out.println("File: " + file);
// Calling HW4 Class to use in the rest of the program
HW4Util util = new HW4Util();
// Establishing counting variable for distance for the while loop
double totaldistance = 0;
while (fr.hasNextLine()) {
String line = fr.nextLine();
String[] stamp1 = line.split(",");
String line2 = fr.nextLine();
String[] stamp2 = line2.split(",");
double lon1 = Double.parseDouble(stamp1[0]);
double lat1 = Double.parseDouble(stamp1[1]);
String time1 = (stamp1[2]);
double lon2 = Double.parseDouble(stamp2[0]);
double lat2 = Double.parseDouble(stamp2[1]);
String time2 = (stamp2[2]);
// This is just to check to see if the overlap is occurring!
// This should not be included in the project.
System.out.println("this is longitude" +lon1);
System.out.println("this is longitude" +lon2);
// returns the distance between two coordinates as a fraction of a
// mile
double dist = util.distance(lat1, lon1, lat2, lon2);
totaldistance = totaldistance + dist;
totaldistance = (double) (Math.round(totaldistance * 10000))/10000;
}
System.out.println("Total distance traveled: " + totaldistance + " miles");
} // end method main
} // end class filereader