2012-01-28 13 views
4

この文字列を関数分割を使用して分割します。ここに私のコードです: Javaおよび文字列分割

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

私はSPLIにのみ1つの文字列が含まれていることをやろう

。それは、Javaのように分割している "^"が表示されないようです。誰かがこの文字列をどのように文字 "^"で分割することができるか知っていますか?

EDIT解決しよう

:それはString.splitは正規表現ではなく、文字列リテラルを取るためですREG-EX

\\^ 
+0

あなたは実際に答えをマークする必要があります。答えは –

+0

ジガールの近くにあるマークをクリックして質問に答えてください。 – Joey

答えて

7

がかかるため、P

3

は、あなたはそれをエスケープする必要があります。 ^は、正規表現(文字列の先頭にアンカー)で別の意味を持つため、エスケープする必要があります。したがって、最初の文字の前に分割が実際に行われ、完全な文字列が変更されずに戻されます。

あなたはそう

data.split("\\^") 

動作するはずです、Java文字列で\\されなければならない、\で正規表現のメタ文字をエスケープします。

2

.split()は、その引数が正規表現であると想定しているため、これは機能しません。 "^"は正規表現の中で特別な意味を持っていますので、期待通りに動作しません。それを働かせるには、あなたはそれをエスケープする必要があります。 \\^を使用してください。 ^よう

+0

これはうまくいきました。ありがとうございました。P – klemens

3

特殊文字は理由\

+3

実際には、javaのために\\で囲まれています – AlanFoster

+1

ああ、本当です!私の間違い。 +1 – Dawood

2

でエスケープする必要がsplitのパラメータがregular expressionであるということですので、 『^』は、行の先頭を意味しています。だからあなたはASCII- ^にエスケープする必要があります:パラメータ "\\^"を使用してください。