2011-12-18 9 views
9

Chcę podzielić następujący ciąg "Dobry^Wieczór" i użyłem opcji podziału, która nie podzieli wartości. proszę pomóż mi.Jak podzielić ciąg znaków za pomocą "^" tego znaku specjalnego w języku Java?

To, co starałem:

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

proszę pokazać nam kod, który nie działa. –

+0

Ciąg Val = "Good^Evening"; String [] valArray = Val.Split ("^"); –

+0

@ManoharKulanthaivel Dziękuję, ale proszę, edytuj swoje pytanie, aby łatwo było się z nim zapoznać. – Bryan

Odpowiedz

30

Ja zakładając, że zrobił coś takiego:

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

To nie działa, ponieważ argument split jest rzeczywiście regular expression, gdzie ^ ma szczególne znaczenie. Spróbuj to zamiast:

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

\\ jest naprawdę odpowiednikiem jednego \ (pierwszy \ jest wymagana jako sekwencja ucieczki Java w napisowych). Jest to zatem znak specjalny w wyrażeniach regularnych, co oznacza "używaj następnego znaku dosłownie, nie interpretuj jego specjalnego znaczenia".

7

regex należy użyć jest „\ ^”, co piszesz jak "\\^" jako Java String dosłowny; tj

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

regex potrzebuje ucieczki '\', ponieważ znak daszka ('^') jest meta-znaków w języku regex. Druga "ucieczka" jest potrzebna, ponieważ "\" jest ucieczką w dosłownym łańcuchu.

0

spróbować

String str = "Good^Evening"; 
String newStr = str.replaceAll("[^]+", ""); 
Powiązane problemy