Javaでは、文字を分割しようとして^
いますが、認識できません。エスケープ\^
するとコードエラーがスローされます。
これは特殊文字ですか、それとも認識させるために何か他のことをする必要がありますか?
String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr);
これ^
はJava正規表現の特殊文字であり、入力の「先頭に一致する」ことを意味します。
でエスケープする必要があります"\\^"
。をエスケープするには、ダブルスラッシュが必要です。そうしないと、Javaのコンパイラは、改行の場合と同様に、文字列で\
特別なシーケンスを使用しようとしていると見なします。\^
\n
\^
ただし、これは特別なエスケープシーケンスではないため、コンパイラエラーが発生します。
つまり、を使用します"\\^"
。
上記の答えはどれも意味がありません。これが正しい説明です。
String splitstr = "\\^";
^は文字列の先頭に一致します。エスケープする必要がありますが、この場合、正規表現パーサーがエスケープをエスケープすることを意味することを理解できるように、エスケープする必要があります。
String splitChr = "\\^";
...
あなたが望むものを手に入れるべきです。
String.split()
正規表現を受け入れます。記号は、入力シーケンスの^
開始を示す特別な記号です。それを機能させるには、それをエスケープする必要があります。あなたはそれをエスケープしようとしていまし\
たが、Java文字列で物事をエスケープするのは特殊文字なので、別の。でエスケープ文字をエスケープする必要があります\
。それはあなたに与えるでしょう:
\\^
を使用します"\\^"
。この例をガイドとして使用してください。
String aryToSplit = "word1^word2";
String splitChr = "\\^";
String[] fmgStrng = aryToSplit.split(splitChr);
System.out.println(fmgStrng[0]+","+fmgStrng[1]);
「word1、word2」を出力し、。を使用して文字列を効果的に分割する必要があります"\\^"
。最初のスラッシュは、2番目のスラッシュをエスケープするために使用されます。二重スラッシュがない場合、Javaは^が改行のようにエスケープ文字であると見なします。"\n"