Я пытаюсь прочитать целые числа из текстового файла, но я хочу обработать первую строку иначе, чем остальные, и взять следующие строки и выполнить цикл некоторых вычислений. Ниже мой читатель файла, мой вопрос о следующей части, однако это может обеспечить некоторый контекст.
public class main
{
BufferedReader in;
public main() throws FileNotFoundException
{
System.out.println("please enter the name of the text file you wish you import. Choose either inputs or lotsainputs. Nothing else");
Scanner keyboard = new Scanner(System.in);
String filename = keyboard.nextLine();
File file = new File(filename);
System.out.println("You have loaded file: \t\t"+filename);
in = new BufferedReader(new FileReader(file));
Scanner inputFile = new Scanner(file);
String element1 = inputFile.nextLine().toUpperCase();
try
{
while ((element1 = in.readLine()) != null)
{
System.out.println("Line to process:\t\t"+element1);
myCalculations(element1);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
Первый текстовый файл выглядит так:
200 345
36
Второй текстовый файл выглядит так:
200 345
36
45
36
21
Вот метод, который называется:
public static void myCalculations(String s)
{
String[] items = s.split(" ");
int[] results = new int[100];
String errorMessage = "that's a wrap!";
for (int i = 0; i < items.length; i++)
{
try {
int stuff = Integer.parseInt(items[i]);
results[i] = stuff;
}
catch (NumberFormatException nfe) {
System.out.println(results);
System.out.println(errorMessage);
}
}
int health = result[0];
int power = result[1];
int days = result[2];
some calculations....
returns new health and power of the car.
same calculations but results[3] as the time period
returns new health and power of car
etc....
}
Метод анализирует целые числа и помещает их в массив результатов [].
Допустим, первые два числа текстового файла - это здоровье и мощность автомобиля. Каждое исходящее число - это дни между гонками. В каждой гонке наблюдается ухудшение состояния автомобиля и двигателя, причем степень износа составляет фактор дней между гонками.
Я использовал результаты [3] [4] & [5] и жестко закодировал ухудшение и распечатал результаты, и это работает, но это довольно дерьмо. Как бы я улучшить этот метод? Я копирую и вставляю «расчеты». Как мне взять первую строку, а затем поместить следующие строки в отдельный цикл?
в идеале количество дней в текстовом файле может варьироваться. то есть, может быть 5 гонок или может быть 3, и программа будет обрабатывать оба случая.