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"