& = ~ ^
メソッドを使用して、次の区切り文字のセット(アンパサンド、イコール、チルダ、カレット)でJavaスキャナーを使用しようとしていますuseDelimiter("&|=|~|^");
。
無視されるものを除いて、すべての区切り文字は問題なく機能^
します。それはなぜですか。
スキャナーのドキュメントで理由がわかりません。
& = ~ ^
メソッドを使用して、次の区切り文字のセット(アンパサンド、イコール、チルダ、カレット)でJavaスキャナーを使用しようとしていますuseDelimiter("&|=|~|^");
。
無視されるものを除いて、すべての区切り文字は問題なく機能^
します。それはなぜですか。
スキャナーのドキュメントで理由がわかりません。
^
次のように、エスケープする必要がありますuseDelimiter("&|=|~|\\^")
。これ^
は、が正規表現のメタ文字であり、のString
パラメータがuseDelimiter()
正規表現にコンパイルされるためPattern
です。
同様に、このように区切り文字を書くことができます。この場合、^
:をエスケープする必要はありません。useDelimiter("[&=~^]")
^
は正規表現の予約記号であるため、エスケープする必要があります\\^
。