Java String Split avec "." (Point)
Le problème ici est la nature ambiguë du point "." caractère dans le fractionnement de chaîne Java.
Dans le code fourni, la ligne String extensionRemoved = filename.split(".")[0]; échoue avec une ArrayIndexOutOfBoundsException car le point est interprété comme un caractère générique qui correspond à n'importe quel caractère, ce qui donne un tableau vide après le fractionnement.
Pour diviser sur un point littéral, il est nécessaire de l'échapper en utilisant \.:
String extensionRemoved = filename.split("\.")[0];
Cela garantit que le point est traité comme un caractère littéral plutôt que comme un caractère générique.
Vous pouvez également utiliser la version surchargée de split avec une limite négative pour désactiver la suppression des espaces de fin du résultat :
String extensionRemoved = filename.split("\.", -1)[0];
Cela renverra un tableau non vide même si le nom de fichier est un seul point.
Il est important de noter que si le nom de fichier contient plusieurs points, la méthode split renverra un tableau de chaînes divisé par le points. Par conséquent, il est essentiel de gérer le nombre d’éléments renvoyés par la méthode split pour éviter toute exception potentielle.
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!