区切り文字としてドット (.) を使用して Java 文字列を正しく分割するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-23 07:30:11
オリジナル
300 人が閲覧しました

How to Correctly Split a Java String Using a Dot (.) as the Delimiter?

Java 文字列を「.」で分割する(ドット)

Java では、split() メソッドを使用して、指定された区切り文字に基づいて文字列を部分文字列に分割します。ただし、リテラルのドット文字 '.' で文字列を分割しようとすると、ArrayIndexOutOfBoundsException がスローされる場合があります。

この問題を説明するには、次のコードを考えてみましょう。

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

上記のコードの目的は、ファイル名をドットで分割してファイル拡張子を削除することです。ただし、このコードを実行すると例外が発生します。

逆に、次のコードは正しく動作します。

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

これは、split() メソッドが '.' を解釈するためです。文字列内の任意の文字と一致するワイルドカード文字として使用します。リテラルのドットで分割するには、バックスラッシュを使用してエスケープする必要があります。

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

ドットをエスケープすることで、ワイルドカードではなくリテラル文字で分割したいことを示します。バックスラッシュ文字自体が正規表現の特殊文字であるため、別のバックスラッシュを使用してエスケープする必要があることに注意することが重要です。

さらに、ドットで分割する場合は、次のようなエッジ ケースを考慮することが重要です。ファイル名が空であるか、ドットのみで構成されています。 Split() メソッドの制限パラメータを使用せずにこのような文字列を分割しようとすると、ArrayIndexOutOfBoundsException が発生する可能性があります。これを防ぐには、limit パラメータに負の値を使用します。

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

limit を負の値に設定すると、結果の配列から末尾の空白が削除されなくなり、常に有効な値が得られるようになります。空の文字列や単一文字の文字列でもインデックスを作成します。

以上が区切り文字としてドット (.) を使用して Java 文字列を正しく分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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