Как устранить ошибку «Исключение в потоке «основной»» и получить правильный вывод?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как устранить ошибку «Исключение в потоке «основной»» и получить правильный вывод?

Сообщение Anonymous »

Утилита сканера — это виртуальный пример оборудования, с которого мне нужно генерировать входные данные. Я создал метод inputCities(), но моя программа ничего не выводит, и я постоянно сталкиваюсь с ошибкой ниже. К сожалению, мне приходится использовать интегрированную среду кодирования, встроенную в HTML. Инструменты отладки недоступны для этой части кода, и я не понимаю, почему она вообще выдает эту ошибку.
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at SmallTowns.inputCities(SmallTowns.java:15)
at CitySystem.main(CitySystem.java:9)

Предназначенная реализация после устранения ошибки:
в методе inputCities() класса SmallTowns:
  • Цикл while используется для создания нового объекта City, вызова метода setDetails() объекта City и чтения следующих значений currName и currRating из входных данных соответственно.
  • Объект City для каждой пары имени и рейтинга добавляется в список cityList.
  • Если следующее currName, прочитанное из входных данных, равно «done», цикл while завершается.
    Пример: если входные данные — Natrona B Gillette B Glendo A Asaph A Done, то выходные данные:
    City: Natrona, Rating: B City: Gillette, Rating: B City: Glendo, Rating: A City: Asaph, Rating: A
import java.util.Scanner;
import java.util.ArrayList;

public class CitySystem {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
SmallTowns smallTowns = new SmallTowns();

smallTowns.inputCities(scnr);
smallTowns.printCities();
}
}

public class City {
private String name;
private char rating;

public void setDetails(String newName, char newRating) {
name = newName;
rating = newRating;
}

public void print() {
System.out.println("City: " + name + ", Rating: " + rating);
}
}

import java.util.Scanner;
import java.util.ArrayList;

public class SmallTowns {
private ArrayList cityList = new ArrayList();

public void inputCities(Scanner scnr){
String currName = " ";
char currRating = ' ';
while (!currName.equals("done")){
City newCity = new City();
newCity.setDetails(currName, currRating);
cityList.add(newCity);
currName = scnr.next();
currRating = scnr.next().charAt(0);
}
}
public void printCities() {
City currCity;
int i;

for (i = 0; i < cityList.size(); ++i) {
currCity = cityList.get(i);
currCity.print();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... ect-output
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»