Java String Split with Dot (.)
En Java, la méthode split() est couramment utilisée pour décomposer une chaîne en fonction de un délimiteur spécifié. Cependant, lorsqu'ils tentent de diviser une chaîne sur un point littéral (.), les programmeurs rencontrent l'erreur suivante :
fileName.split(".")[0]; ArrayIndexOutOfBoundsException
Pour comprendre la cause de cette exception, nous devons nous plonger dans les expressions régulières. Le point (.) est un métacaractère dans l'expression régulière qui correspond à n'importe quel caractère. Par conséquent, l'utilisation d'un point littéral sans l'échapper entraîne un comportement de fractionnement involontaire.
L'approche correcte consiste à échapper le point à l'aide d'une barre oblique inverse () pour garantir qu'il est interprété comme un caractère littéral :
fileName.split("\.")[0];
Cela garantit que la chaîne est divisée spécifiquement au niveau du point littéral, plutôt qu'au niveau de tout autre caractère.
Un autre problème qui peut survenir est une ArrayIndexOutOfBoundsException lorsque la chaîne d'entrée est constituée uniquement d'un point (.). Pour éviter ce cas extrême, utilisez la version surchargée de split() avec un paramètre de limite défini sur une valeur négative :
fileName.split("\.", -1)[0];
Définir la limite sur une valeur négative désactive le comportement de suppression des espaces de fin du tableau résultant , garantissant que même lorsque la chaîne d'entrée n'est qu'un point, un tableau avec deux espaces est renvoyé :
".".split("\.", -1) // [""," "]
En suivant ces approches, vous pouvez diviser efficacement les chaînes Java sur le caractère point tout en éviter les exceptions potentielles.
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!