エラー『Dangling meta character '?'』の回避方法
Javaのmatches
関数を用いた文字列比較で
Dangling meta character '?' near index 0
というエラーが発生したので対策メモ.
エラー発生状況
matches
関数で二つのString変数の比較を行ったときに発生.
具体的には,
String str1 = "?ABC";
String str2 = "?A";
if(str1.matches(str2 + ".*)) {}
というように,文字列の先頭に?
が含まれる変数の比較を行った.
原因
文字列中の?
が正規表現記号と判定されてしまうため.
回避方法
matches
関数の引数の文字列にエスケープ文字\\
をつけてあげればOK.
上記の例だと,次のようにすれば回避できる.
String str1 = "?ABC";
String str2 = "?A";
if(str1.matches("\\" + str2 + ".*")) {}
もしくは,Pattern.quote
でも回避できる.
if(str1.matches(Pattern.quote(str2) + ".*")) {}
Author And Source
この問題について(エラー『Dangling meta character '?'』の回避方法), 我々は、より多くの情報をここで見つけました https://qiita.com/nbkn/items/04dc017e119d947285fe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .