Другой вариант - использовать Splitter Guava. У него нет накладных расходов на регулярное выражение (которое вам не нужно в этом случае) и по умолчанию не отбрасывает пустые строки.
Например:
String data = "5|6|7||8|9||";
Iterable results = Splitter.on('|').split(data);
// convert to array
String[] asArray = Iterables.toArray(results, String.class);
Для получения дополнительной информации см. wiki: https://github.com/google/guava/wiki/StringsExplained