Ошибка при использовании Java String split - PullRequest
0 голосов
/ 01 апреля 2010

HI All,

Я уже некоторое время использую базовое разбиение - где я просто разбираю строку в массив на основе простого токена типа "" или ",".

Поэтому, конечно, клиент пытается это сделать: \\.br\, что с треском проваливается.

Мне нужно проанализировать массив строк.Например, строка выглядит так:

"LINE 1\\.br\\LINE 2\\.br\\LINE 3\\.br\\LINE 4\\.br\\"

, и это не так с java.util.regex.PatternSyntaxException: Unexpected internal error.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 01 апреля 2010

Вы можете использовать Pattern.quote() для экранирования строки для использования в качестве регулярного выражения:

... = s.split(Pattern.quote("\\.br\\"));
3 голосов
/ 01 апреля 2010

Не забывайте, String.split принимает регулярное выражение , и большинство людей вставляют строковый литерал, так что вы должны экранировать \ для регулярного выражения и экранировать его для строк, таким образом, вы в конечном итоге в аргументе String "\\\" представляете один символ \.

, например

String.split("\\\")

так в вашем случае:

String.split("\\\\\\.br\\\\") // extra slash for regex, and String encoded
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...