2011-12-18 2 views
9

Я хочу разбить следующую строку «Good^Evening», я использовал функцию split, но не разделил значение. пожалуйста помогите.Как разбить строку, используя '^' этот специальный символ в java?

Это то, что я пытался:

String Val = "Good^Evening"; 
String[] valArray = Val.Split("^"); 
+1

Пожалуйста, покажите нам код, который не работал. –

+0

Строка Val = "Good^Evening"; String [] valArray = Val.Split ("^"); –

+0

@ManoharKulanthaivel Спасибо, но, пожалуйста, отредактируйте свой вопрос с этим, чтобы его было легко ссылаться. – Bryan

ответ

30

Я предполагаю, что вы сделали что-то вроде:

String[] parts = str.split("^"); 

Это не работает, потому что аргумент split фактически regular expression, где ^ имеет особое значение. Попробуйте вместо этого:

String[] parts = str.split("\\^"); 

\\ действительно эквивалентен одному \ (первый \ требуется в качестве управляющей последовательности Java в строковых литералов). Затем это специальный символ в регулярных выражениях, что означает «использовать следующий символ буквально, не интерпретировать его особое значение».

7

регулярное выражение, вы должны использовать это «\ ^», который вы пишете, как "\\^" в виде Java строки буквальным; т.е.

String[] parts = "Good^Evening".split("\\^"); 

Регулярное выражение нуждается в побег «\», потому что каретка символ («^») является мета-символ в языке регулярных выражений. Второй «бег» необходим, потому что «\» - это побег в строковом литерале.

0

попробовать это

String str = "Good^Evening"; 
String newStr = str.replaceAll("[^]+", ""); 
Смежные вопросы