Maison > Java > javaDidacticiel > le corps du texte

Comment diviser correctement une chaîne Java en utilisant un point (.) comme délimiteur ?

Susan Sarandon
Libérer: 2024-11-23 07:30:11
original
299 Les gens l'ont consulté

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

Séparation de chaînes Java avec "." (Point)

En Java, la méthode split() est utilisée pour diviser une chaîne en sous-chaînes en fonction d'un délimiteur spécifié. Cependant, lorsque vous tentez de diviser une chaîne sur le caractère point littéral '.', une ArrayIndexOutOfBoundsException peut être levée.

Pour illustrer ce problème, considérez le code suivant :

String filename = "D:/some folder/001.docx";
String extensionRemoved = filename.split(".")[0];
Copier après la connexion

Dans le ci-dessus, l'intention est de supprimer l'extension du fichier en divisant le nom du fichier par point. Cependant, l'exécution de ce code entraînera une exception.

À l'inverse, le code suivant fonctionne correctement :

String driveLetter = filename.split("/")[0];
Copier après la connexion

Cela est dû au fait que la méthode split() interprète '.' comme caractère générique, qui correspond à n'importe quel caractère de la chaîne. Pour diviser sur le point littéral, il est nécessaire de l'échapper à l'aide d'une barre oblique inverse :

String extensionRemoved = filename.split("\.")[0];
Copier après la connexion

En échappant le point, nous indiquons que nous voulons diviser sur le caractère littéral, pas sur le caractère générique. Il est important de noter que le caractère barre oblique inverse est lui-même un caractère spécial dans l'expression régulière, il doit donc également être échappé à l'aide d'une autre barre oblique inverse.

De plus, lors du fractionnement sur un point, il est crucial de prendre en compte le cas limite où le nom du fichier est vide ou se compose uniquement d'un point. Si vous tentez de diviser une telle chaîne sans utiliser le paramètre limit de la méthode split(), vous risquez de rencontrer une exception ArrayIndexOutOfBoundsException. Pour éviter cela, utilisez une valeur négative pour le paramètre limit :

String extensionRemoved = filename.split("\.", -1)[0];
Copier après la connexion

En définissant la limite sur une valeur négative, vous désactivez la suppression des blancs de fin du tableau résultant, garantissant ainsi que vous obtenez toujours un valide index même pour les chaînes vides ou à un seul caractère.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal