Определить, если сканер не имеет следующий - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть следующий файл, который я использую в качестве теста:

id = 1392
имя = Натан
пол = мужской
testempty =
testempty2 =
zip = 11111

Я зацикливаю строки и вызываю на них функцию processLine(String line) для обработки Strings:

private String processLine(String line) {
    Scanner scanner = new Scanner(line);
    StringBuilder result = new StringBuilder();
    scanner.useDelimiter("=");

    if (scanner.hasNext()) {
        result.append(scanner.next());
        result.append(" , ");
        result.append(scanner.next());
        result.append(" , ");
    }

    return result.toString();
}

Но как я могуопределить, нет ли следующего (как в testempty) и выполнить result.append("empty , ")?

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Измените свой метод. Добавьте «,» перед добавлением значения, если результат еще не пуст:

if (scanner.hasNext()) {
    if (!result.isEmpty()) {
     result.append(" , ");
    }
    result.append(scanner.next());
    result.append(" , ");
    result.append(scanner.next());
}
1 голос
/ 01 февраля 2012

(я думаю, это то, что вы просите)

Изменить строки:

result.append(scanner.next());

до:

result.append(scanner.hasNext() ? scanner.next() : "empty");
...