Функциональность разделения, по-видимому, отличается между Java и JavaScript.Работа с Java по сравнению с разнесением JavaScript
Мне не нужно точно соответствовать определенным критериям регулярного выражения или используйте регулярное выражение, основанное на lookahead. Моя проблема заключается в том, что пустые совпадения возвращаются после окончательного соответствия разделенного регулярного выражения (которое представляет собой простой набор символов, а не выражение).
Ниже приведен пример результата, который я пытаюсь достичь, и что я действительно получаю.
Java
("~#~~#~~#~A~#~B~#~C~#~D~#~E~#~~#~~#~").split("~#~")
/* results with an array of length 8 */ (java.lang.String[]) [, , , A, B, C, D, E]
Javascript
"~#~~#~~#~A~#~B~#~C~#~D~#~E~#~~#~~#~".split("~#~")
/* results with an array of length 11 */ ["", "", "", "A", "B", "C", "D", "E", "", "", ""]
Я действительно не могу положить руки на хорошее объяснение для этого, как я работаю с приложением Java и раскол вызывая у меня проблемы, я хочу получить тот же результат, что и в JavaScript. Как я могу это получить?
Несмотря на имя сходство (возможно, немые решения EVER), они на самом деле разные языков. Вы обнаружите, что 'split' в C работает по-другому (жалуясь на то, что не смог найти его, в основном). – paxdiablo
Как даже имеет смысл, что Java опускает пустые строки в конце раскола, но не предваряющие? Результат Javascript дает вам гораздо больше смысла. – connexo
@connexo: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29: 'Поэтому пустые строки не включаются в результирующий массив. ' – paxdiablo