Échapper au symbole de canal pour le fractionnement de chaîne en Java
La classe Java String fournit la méthode split() pour diviser une chaîne en un tableau de sous-chaînes utilisant un caractère délimiteur ou une expression régulière. Lors de la division par un symbole de barre verticale (|), le comportement inattendu se produit car le symbole de barre verticale est un métacaractère dans les expressions régulières.
Le problème découle des règles des expressions régulières :
Par conséquent, lors de l'utilisation de test.split("|"), le | Le caractère est interprété comme un opérateur OU, et non comme un symbole de barre verticale littérale. Pour résoudre ce problème, vous devez échapper au symbole de tuyau en utilisant .
Solution 1 : Échapper au symbole de tuyau
Pour échapper au symbole de tuyau, utilisez une double barre oblique inverse, écrite comme \ dans une chaîne. Cela indiquera à Java que le | doit être traité comme un caractère littéral, et non comme un métacaractère.
String test = "A|B|C||D"; String[] result = test.split("\|");
Solution 2 : utilisez Pattern.quote()
Vous pouvez également utiliser le modèle Méthode .quote() pour créer une version échappée du symbole de tuyau.
String test = "A|B|C||D"; Pattern pattern = Pattern.quote("|"); String[] result = test.split(pattern);
Attendu Résultat :
Les deux solutions produiront le résultat souhaité :
>A< >B< >C< >< >D<
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!