2013-10-04 2 views
1

Это моя строка ввода, и я пытаюсь разбить Scala. я обнаружил, что, по-видимому, существует некоторая фундаментальная разница в том, как я понимал раскол, или это не работает в соответствии с моими данными. Мой ввод имел 0, "", "" как последние три символа. Когда on split, выход останавливается с 0 и последние два пустых символа во входной строке «» и «», игнорируются.Сплит-функция работает странно?

Это мой регулярный ехр

val lines = "5;;ABCDEF;GHIJK;;DEC;XXXX;;;;;;YYYY;ZZZZZ;XXXXXXX ;4;YYYY;;;;;;;;;0**;;;**"  

val parsedArray = lines.map(_.split("\\;")) 

Array[java.lang.String] = Array(5, "", ABCDEF, GHIJK, "", DEC, XXXX, "", "", "", "", "", YYYY, ZZZZZ, XXXXXXX, 4, YYYY, "", "", "", "", "", "", "", **"", 0)** 

Чувствуете ли вы что-нибудь?

+0

какое регулярное выражение вы используете как раздельное выражение? – maasg

+1

Вам необходимо передать отрицательное число в качестве второго параметра (предел). Прочтите документацию. –

+0

Я добавил разделенный рег-ex.Что означает число - ссылка для 'split()' API? – Learner

ответ

3

От http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String, int):

Если п не является положительным, то шаблон будет применен столько раз, сколько это возможно и массив может иметь любую длину. Если n равно нулю, то шаблон будет применяться столько раз, сколько возможно, массив может иметь длину , а оставшиеся пустые строки будут отброшены.

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