我知道有很多关于从txt文件中读取数据的问题,但我给出的txt文件包含:
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。 我知道它有很多错误但是在这一点上我正在尝试一些奇怪的事情让它发挥作用。我不是在寻找对此代码的更正,而是整体解决问题。
答案 0 :(得分:0)
您可以尝试在空格处分割单词,然后将其存储在Objects
数组中。然后,您可以使用instanceof
来比较类型,例如if(obj instanceof Integer)
...