Я знаю, что есть много вопросов, уже просто чтение данных из текстового файла, но текстовый файл я получил содержит следующее:Считывание нескольких типов данных из текстового файла 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++;
}
при печати любого массива, используя для-каждый цикл, все значения равны 0. за исключением, когда я печатаю только первый элемент (например, [0 ]), он покажет правильное значение. Любое другое, где индекс> 0 все еще показывает 0. Я знаю, что с ним много чего плохого, но на данный момент я пытался попробовать некоторые странные вещи, чтобы заставить его работать. Я не ищу исправления для этого кода, а также решение проблемы в целом.
Прошли ли вы через код в отладчике? – OldProgrammer
Я пробовал, но ошибок не было. Как только я нажал кнопку, он пробежал весь код –
Просто потому, что не было никакой «ошибки», это не значит, что нет проблемы. Очевидно, что есть проблема, потому что вы публикуете вопрос. Пройдите через каждую строку кода, изучите переменные по мере их изменения и т. Д. Изучение правильных методов отладки так же важно, как и изучение языка. http://blog.codeunion.io/2014/09/03/teaching-novices-how-to-debug-code/ – OldProgrammer