Maison >Java >javaDidacticiel >Comment échapper correctement le symbole de canal pour le fractionnement de chaîne en Java ?

Comment échapper correctement le symbole de canal pour le fractionnement de chaîne en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 01:19:18332parcourir

How to Properly Escape the Pipe Symbol for String Splitting in Java?

É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 :

  • Le symbole pipe (|) représente l'opérateur OR dans les expressions régulières.
  • Dans les chaînes Java, le caractère barre oblique inverse () est un échappement caractère.

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!

Déclaration:
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