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