Maison > Java > javaDidacticiel > Pourquoi la méthode Java `split()` échoue-t-elle lors de la division des chaînes par '|' et comment puis-je y remédier ?

Pourquoi la méthode Java `split()` échoue-t-elle lors de la division des chaînes par '|' et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2024-12-21 06:42:11
original
854 Les gens l'ont consulté

Why Does Java's `split()` Method Fail When Splitting Strings by

Diviser une chaîne Java par le symbole du tuyau : dépannage de la méthode Split() inefficace

La méthode Java split(), lorsqu'elle est utilisée pour diviser une chaîne par le tuyau symbole ("|"), peut donner des résultats inattendus, comme le montre l'exemple suivant :

public static void main(String[] args) {
    String test = "A|B|C||D";

    String[] result = test.split("|");

    for (String s : result) {
        System.out.println(">"+s+"<");
    }
}
Copier après la connexion

Au lieu du résultat prévu sortie :

>A<
>B<
>C<
><
>D<
Copier après la connexion

le code produit :

><
>A<
>|
>B<
>|
>C<
>|
>|
>D<
Copier après la connexion

Pourquoi cela se produit-il ?

Le problème réside dans la syntaxe de la méthode split(). Le symbole barre verticale, « | », revêt une importance particulière dans les expressions régulières, où il représente l'opérateur « OU ». Pour utiliser le symbole de la barre verticale comme délimiteur, il faut l'échapper à l'aide d'une barre oblique inverse ().

Pour modifier le code, on peut utiliser les approches suivantes :

// Option 1: Escaping the pipe symbol
String[] result = test.split("\|");
Copier après la connexion
// Option 2: Utilizing Pattern.quote()
import java.util.regex.Pattern;
String[] result = test.split(Pattern.quote("|"));
Copier après la connexion

En échappant au symbole pipe, vous supprimez son statut spécial dans les expressions régulières, lui permettant d'être interprété comme un délimiteur littéral.

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