0
我知道有許多問題已經在簡單地從一個txt文件中讀取數據,但我得到了txt文件中包含這多種數據類型閱讀:要從一個txt文件的Java
1980 Aug 945 100 Allen1983 Aug 962 100 Alicia1984 Sep 949 100 Diana
第一個數字是一年,一個月,一個風壓,結速風速和颶風的名稱。這種模式有幾百個條目,我必須將每個不同的數字放到它自己的數組(年[],幾個月[],壓力[]等等)中。)
我試過很多不同的方法,但這裏是一個最近的嘗試我做的一個示例:
import java.io.IOException;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;
public class Hurricanes2 {
public static void main(String[] args) throws IOException {
int i = 0;
int token1 = 0;
String token2 = "";
int[] years = new int[1000]; //token 1
String[] months = new String[1000]; //token 2
String[] names = new String[1000];
int[] pressure = new int[1000]; //token 1
int[] windSpeed = new int[1000]; //token 1
int[] category = new int[1000]; //token 1
Scanner s = new Scanner (new FileReader("hurcdata2.txt"));
while (s.hasNext()) {
if (s.hasNextInt()) {
token1 = s.nextInt();
if (token1 >= 1980) {
years[i] = token1;
}
else if (token1 >= 1000) {
pressure[i] = token1;
}
else {
windSpeed[i] = token1;
}
}
else if (s.hasNext()) {
token2 = s.next();
if (token2.equals("Jun") || token2.equals("Jul") || token2.equals("Aug") || token2.equals("Sep") || token2.equals("Oct") || token2.equals("Nov")) {
months[i] = token2;
}
else {
names[i] = token2;
}
}
token1 = 0;
token2 = "";
i++;
}
當我使用打印任何陣列的for-each循環,所有的值都爲0。除當我打印只是所述第一元件(例如,[0 ])它會顯示正確的值。任何其他索引> 0仍顯示0. 我知道它有很多錯誤,但在這一點上,我正在嘗試一些奇怪的事情,使其工作。我並沒有像這個問題的整體解決方案那樣尋找這個代碼的修正。
您是否在調試器中單步執行代碼? – OldProgrammer
我試過了,但沒有錯誤。一旦我按下了一步,它就運行了整個代碼 –
僅僅因爲沒有「錯誤」並不意味着沒有問題。顯然有一個問題,因爲你發佈一個問題。逐步檢查每一行代碼,檢查變化時的變量等。學習正確的調試技術與學習語言一樣重要。 http://blog.codeunion.io/2014/09/03/teaching-novices-how-to-debug-code/ – OldProgrammer