"hello*world"
を使用して文字列を分割しようとするたびs.split("*");
に、PatternSyntaxException が発生します。
使用してみs.split("\*");
ましたが、別のエラーが発生します。これは単純なことだと確信しています。
どうすればこれを止めることができますか?
*
ゼロ以上の文字に一致するワイルドカード量指定子として使用される正規表現のメタ文字です
2 つのバックスラッシュ文字を使用してみてください
s.split("\\*");
このsplit
メソッドは、通常の文字列ではなく、正規表現を引数として取ります。は*
、正規表現で特別な意味を持ちます。リテラルで分割したい場合*
は、バックスラッシュでエスケープする必要があります。ただし、バックスラッシュは Java 文字列リテラルのエスケープ文字でもあるため、2 つのバックスラッシュを使用してバックスラッシュもエスケープする必要があります。
s.split("\\*")