2015-04-29 1 views
0

Я beginer Ла Скала, и я столкнулся этот вопрос:Расщепление Строка в Скале игнорирует недействительные поля в конце

От: "abcd ; efgh ; ijkl ; ; ; ; "

Я хотел бы иметь: Array["abcd ","efgh "," ijkl " , "", "" , "" ,""]

Пока функция сплит возвращается: ["abcd ","efgh "," ijkl " ]

Может ли кто-нибудь помочь, пожалуйста?

Заранее благодарен!

+2

Как вы его запустили? '' abcd; efgh; ijkl;;;; ".split ("; ")' возвращает только то, что вы хотите – Kolmar

+0

Kolmar вы правы, я привел неверный пример. пожалуйста, см. ответ Ломига! –

ответ

2

Данное поведение относится к Java-методу split(regex). Если вы хотите сохранить завершающие пустые строки в вашем возвращенном массиве вы должны использовать перегруженный метод split(regex, limit):

scala> "a,b,c,,".split(",") 
res0: Array[String] = Array(a, b, c) 

scala> "a,b,c,,".split(",", -1) 
res1: Array[String] = Array(a, b, c, "", "") 

Обратите внимание, что строка, заданная в вашем примере действительно работает, потому что вы добавили пробела между разделителями:

scala> "a , b , c , , ".split(",") 
res2: Array[String] = Array("a ", " b ", " c ", " ", " ") 
+0

Добро пожаловать. Вы можете отметить ответ как принято :) –

Смежные вопросы