Сканер из FileIO не дает желаемого результата - PullRequest
0 голосов
/ 16 января 2019

У меня есть текст в текстовом файле, который читает (занятия йогой; 12; 2; 11-12; описание; 11; 2019; 11; 2) когда я пытаюсь напечатать определенные поля, такие как field [4] или field [0] я получаю classdescription и the2 соответственно. Как я могу получить "описание", как оно есть, когда я печатаю поле?

        while(sc.hasNext()) {
            String [] fields = sc.next().split(";");
            for (int i =4; i<fields.length; i++) {
                System.out.println(fields[0]);
            }
        }


    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

1 Ответ

0 голосов
/ 16 января 2019

По умолчанию Сканер использует "" в качестве разделителя.Вы ожидаете, что sc.next() вернет полную строку.Поэтому вам нужно установить EOL в качестве разделителя:

sc.useDelimiter(System.getProperty("line.separator"));

Это может помочь поместить выходной файл sc.next () в строковую переменную и распечатать его, чтобы убедиться, что он возвращает то, что вы ожидаете:

sc.useDelimiter(System.getProperty("line.separator"));
while(sc.hasNext()) {
    String line=sc.next();
    String [] fields = line.split(";");
    System.out.println(fields[4]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...