Как включить пустые строки в результат String.split?

347
01 сентября 2017, 21:58

Есть набор строк от внешнего сервиса, вот пример одной из них:

"||08:29:2017|08:29:2017|160|UMC MED|AAA Doctors Corporation|7,411.50|From Customer|Submitted|08292017|16:00:09|In-Process|||"

в этой строке 16 полей(значений). Эти значения разделяются символом "|". С помощью метода split("//|") в случае этой строки получаю массивы из 13 полей

[, , 08:29:2017, 08:29:2017, 160, UMC MED, AAA Doctors Corporation, 5,560.50, From Customer, Submitted, 08292017, 16:00:09, In-Process]

А в случае этой строки

"0000005691_1503040276730||08:18:2017|08:24:2017|0000005691|MS547TermUponAppAH||14.74|From Customer|Cleared|08292017|00:00:01|Cleared|POS|P70|VALIDATED"

получаю нужный результат — 16 значений.

Подскажите, как и чем парсить чтобы не упускать пустые значения?

Answer 1

Использовать дополнительный аргумент метода split()

public static void main(String[] args) {
    String str = "||08:29:2017|08:29:2017|160|UMC MED|AAA Doctors Corporation|7,411.50|From Customer|Submitted|08292017|16:00:09|In-Process|||";
    System.out.println(str.split("\\|", -1).length);
}
READ ALSO
Как правильно проверять wait_timeout?

Как правильно проверять wait_timeout?

Есть базаУ базы переменная 'wait_timeout' установлена на 300 секунд(для debug мода на 60)

388
Ошибка NoClassDefFoundError в командной строке

Ошибка NoClassDefFoundError в командной строке

Пытаюсь использовать свой же jar файл в другом проекте, при работе в Eclipse проблем нет, но если пытаться запустить через командную строку выдаёт...

480