2012-01-28 3 views
4

разделите эту строку, используя функцию split. Вот мой код:Java и строка split

String data= "data^data"; 
String[] spli = data.split("^"); 

Когда я пытаюсь сделать это, в spli содержится только одна строка. Кажется, что java не видит «^» в расщеплении. Кто-нибудь знает, как я могу разделить эту строку буквой «^»?

EDIT

решаемый: P

+0

С этим вы должны отметить ответ, который является действительно ответом на ваш вопрос, щелкнув отметку рядом с ответом –

+0

Jigar, рекомендуется, но не требуется. – Joey

ответ

7

Это происходит потому, что String.split принимает регулярное выражение, а не буквальная строка. Вы должны избегать ^, поскольку он имеет другое значение в регулярном выражении (якорь в начале строки). Таким образом, раскол действительно будет выполнен до первого символа, давая вам полную строку обратно без изменений.

Вы избежать регулярных выражений метасимволы с \, который должен быть в Java строк \\, так

data.split("\\^") 

должен работать.

3

Вам нужно бежать, потому что она принимает р-ех

\\^ 
2

Это не работает, потому что .split() ожидает, что его аргумент будет регулярным выражением. «^» имеет специальную привязку в регулярном выражении и поэтому не работает так, как вы ожидаете. Чтобы заставить его работать, вам нужно избежать этого. Используйте \\^.

+0

Yup this works, thanks man: P – klemens

3

Специальные символы, такие как ^ должны быть экранированы с \

+3

фактически escapped с \\, из-за java – AlanFoster

+1

Ах, правда! Виноват. +1 – Dawood

2

Причина заключается в том, что параметр split «s является regular expression, так что„^“означает начало строки. Поэтому вам нужно сбежать в ASCII- ^: используйте параметр «\\^».