Прочитайте строки из.txt и сохраните их в разные целые числа.

108
11

Поэтому я получил следующий код:

    BufferedReader ind = new BufferedReader(new FileReader("Billet_priser.txt"));
String line = ind.readLine();
String[] bits = line.split(" "); // opdel i bidder efter mellemrum

line = ind.readLine();
bits = line.split(" ");
Ticket1 = Integer.parseInt(bits[1]);
line = ind.readLine();
line.split(" ");
Ticket2 = Integer.parseInt(bits[1]);
line = ind.readLine();
line.split(" ");
...
line = ind.readLine();
line.split(" ");
Ticketn = Integer.parseInt(bits[1]);
}

чтение из файла.txt со следующим текстом:

Ticket1 99
Ticket2 35
...
Ticketn 60

Попытка получить второй бит после пробела в каждой строке, которая будет храниться в целых числах билета.

Проблема в том, что он хранит только первый прочитанный int "99" во всех целых битах. Я хочу, чтобы он прочитал следующую строку после сохранения первого int в первый билет, затем прочитал следующую строку и так далее.

спросил(а) 2021-01-25T14:45:45+03:00 4 месяца, 2 недели назад
1
Решение
78

Вы продолжаете использовать это значение bits для получения номера:

Ticket1 = Integer.parseInt(bits[1]);

Но вы только когда-либо устанавливаете его один раз с первой строки:

String[] bits = line.split(" ");     
while (line != null) {
// bits is never updated in here
}

Похоже, вы хотите просто повторить эту строку кода для обновления bits переменной:

line = ind.readLine();
bits = line.split(" ");
Ticket1 = Integer.parseInt(bits[1]);

(Обратите внимание также, что ваш цикл не имеет особого смысла, потому что похоже, что вы вручную читаете каждую строку с повторяющимися строками кода, а не зацикливаетесь. Три строки кода выше или все, что составляет одну итерацию вашего цикла, должен существовать только один раз. Петли предназначены для повторения этой задачи снова и снова).

ответил(а) 2021-01-25T14:45:45+03:00 4 месяца, 2 недели назад
63

Ваша реализация немного выключена. Вы хотите создать контейнер билетов и использовать цикл, чтобы заполнить его.

List<Integer> tickets = new ArrayList<>();
try (BufferedReader ind = new BufferedReader(new FileReader("Billet_priser.txt")){
String line = null;
while ((line = ind.readLine()) != null) {
String[] bits = line.split(" ");
tickets.add(Integer.parseInt(bits[1]));
}
}
catch (IOException e) {
e.printStackTrace();
}

ответил(а) 2021-01-25T14:45:45+03:00 4 месяца, 2 недели назад
45

Возможно, вы захотите использовать объект Scanner вместо BufferedReader. Постройте его так:

Scanner scannerObject = new Scanner(new File("Billet_priser.txt");

Затем исправить while цикл, чтобы сделать что - то больше, как это:

while (scannerObject.hasNextLine()){
String[] line = scannerObject.nextLine().split(" ");
int currentTicket = Integer.parseInt(line[1]);
}

Вы также можете сохранить номера билетов в ArrayList, построенные следующим образом:

ArrayList<Integer> tickets = new ArrayList<>();

Тогда ваш в while цикл будет выглядеть следующим образом:

while (scannerObject.hasNextLine()){
String[] line = scannerObject.nextLine().split(" ");
tickets.add(Integer.parseInt(line[1]));
}

ответил(а) 2021-01-25T14:45:45+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема