input.next () для одной строки с несколькими значениями - PullRequest
0 голосов
/ 07 июня 2018

Я записываю адрес прямо из моего кода в файл с файловой программой, и эти значения хранятся в одной строке в примере файла (улица 264, Вашингтон).Теперь я хочу написать адрес нового Arraylist с конструктором, который запрашивает три входных значения (улица, номер, город)

Я сделал это таким образом, но когда я вводил улицу, такую ​​как "Park Avenue"это выдает ошибку, поскольку Park Avenue - это два слова ... также интересно, есть ли более быстрый "лучший" способ:

@Override
public List<Adres> query(ISpecification specification) {
    File adresConnection = new File(fsConnection.getAdresConnection());
    if (specification instanceof FileSpecification) {
        if (((FileSpecification) specification).toFileQuery().equals("ALL")) {
            ArrayList<Adres> adressen = new ArrayList<>();
            try (
                    Scanner input = new Scanner(adresConnection)) {
                System.out.println("Adressen laden wordt uitgevoerd");

                while (input.hasNext()) {
                    String straat = input.next();
                    String huisNrMetKomma = input.next();
                    int huisNummer = Integer.parseInt(huisNrMetKomma.substring(0, huisNrMetKomma.length() - 1));
                    String plaats = input.next();

                    adressen.add(new Adres(straat, huisNummer, plaats));
                }

1 Ответ

0 голосов
/ 07 июня 2018

nextLine читает несколько слов, поэтому попробуйте использовать nextLine ();вместо next ();

while (input.hasNext()) {
                String straat = input.nextLine();
                String huisNrMetKomma = input.nextLine();
                int huisNummer = Integer.parseInt(huisNrMetKomma.substring(0, huisNrMetKomma.length() - 1));
                String plaats = input.nextLine();

                adressen.add(new Adres(straat, huisNummer, plaats));
            }
...