scala> val st1 = "|||||||000001|09/01/2014|V|174500,00|22||BD |2540|LEC|1000|BEB|
01|53||AE|111 ||49|94,22|6||||||||2|2|App|80|2|||"
scala> st1.split('|').length
resXX: Int = 39
scala> val st2 = "|||||||000001|09/01/2014|V|174500,00|22||BD |2540|LEC|1000|BEB|
01|53||AE|111 ||49|94,22|6||||||||2|2|App|80|2| | |"
scala> st2.split('|').length
resXX: Int = 41
, то есть последние пустые поля игнорируются разделением.Есть ли какое-либо решение, кроме замены всех "||"
на "| |"
ожидаемый результат Int = 41
.
действительно в реальном файле у меня могут быть такие строки, как:
"|||||||000001|09/01/2014|V|174500,00|22||BD |2540|LEC|1000|BEB|
01|53||AE|111 ||49|94,22|6||||||||2|2|App|80|2|||150"
- это 42-й столбец, содержащий число.(В этом случае результат равен Int = 42
)
Каждая строка имеет одинаковое число |
, но в зависимости от содержимого столбца, split('|').length
возвращает другой результат!(31, 40, ..., 42).
Я могу понять отсутствие столбца после последнего разделителя, но не отсутствие предыдущих.