String.replaceAll() または String.split() の呼び出しで、最初の引数が単一の正規表現メタ文字であるものを報告します。

正規表現メタ文字は .$|()[{^?*+\ のいずれかです。 これらのメタ文字は、正規表現では特別な意味を持っています。 たとえば、"ab.cd".replaceAll(".", "-") を呼び出すと "-----" が生成されます。ドットは任意の文字と一致するためです。 この場合は、代わりにエスケープされたもの "\\." が意図されていたと思われます。

File.separator を正規表現として使用していることも報告されます。 File.separator にはプラットフォーム固有の値があります。 Linux と Mac では / と等しくなりますが、Windows では \ と等しくなります。これは有効な正規表現ではないため、このようなコードには移植性がありません。

例:


  s.replaceAll(".", "-");

クイックフィックス適用後:


  s.replaceAll("\\.", "-");