ホームページ > Java > &#&チュートリアル > Java 文字列の分割: `split(\'.\')` が `ArrayIndexOutOfBoundsException` をスローするのはなぜですか?

Java 文字列の分割: `split(\'.\')` が `ArrayIndexOutOfBoundsException` をスローするのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-24 21:12:12
オリジナル
936 人が閲覧しました

Java String Splitting: Why Does `split(

Java 文字列を ""." (ドット) で分割

問題:

理由次のコードは、上で分割しようとすると ArrayIndexOutOfBoundsException をスローしますか?ドットですが、スラッシュで分割するときに機能します:

String filename = "D:/some folder/001.docx";
String extensionRemoved = filename.split(".")[0];
ログイン後にコピー

対:

String driveLetter = filename.split("/")[0];
ログイン後にコピー

解決策:

リテラルのドットで分割するには、ドット文字は、正規表現パターンとして扱われないようにエスケープする必要があります (任意の文字):

String extensionRemoved = filename.split("\.")[0];
ログイン後にコピー

正規表現文字列に単一のバックスラッシュを作成するには、二重バックスラッシュ (\) が必要です。

さらに、入力文字列が単なるドットの場合、エッジ ケースが発生します。 (".") ドットで分割すると空の配列になるため、この場合に ArrayIndexOutOfBoundsException が発生しないようにするには、オーバーロードされたメソッドを使用します。末尾の空白の削除を無効にする負の制限を指定した Split(regex, limit) メソッド:

String extensionRemoved = filename.split("\.", -1)[0];
ログイン後にコピー

以上がJava 文字列の分割: `split(\'.\')` が `ArrayIndexOutOfBoundsException` をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート