Maison > base de données > tutoriel mysql > Comment puis-je implémenter un comparateur Java avec la fonctionnalité d'opérateur « LIKE » de SQL ?

Comment puis-je implémenter un comparateur Java avec la fonctionnalité d'opérateur « LIKE » de SQL ?

Linda Hamilton
Libérer: 2024-12-26 21:26:15
original
707 Les gens l'ont consulté

How Can I Implement a Java Comparator with SQL's `LIKE` Operator Functionality?

Implémentation d'un comparateur Java avec la sémantique de l'opérateur 'LIKE' de SQL

En SQL, l'opérateur 'LIKE' est largement utilisé pour faire correspondre des chaînes basées sur sur des modèles spécifiques. Pour obtenir des fonctionnalités similaires en Java, nous pouvons créer un comparateur personnalisé qui présente le même comportement.

Solution utilisant des expressions régulières

Les expressions régulières de Java peuvent être utilisées pour émuler le Opérateur 'LIKE'. En utilisant le caractère générique « * », n'importe quelle séquence de caractères peut être mise en correspondance. Par exemple, l'expression régulière suivante correspondra à n'importe quelle chaîne contenant « ital » n'importe où :

.*ital.*
Copier après la connexion

De même, un espace réservé à un seul caractère peut être représenté par un point ('.'). Ainsi, l'expression régulière ci-dessous correspondra à n'importe quelle chaîne avec « gi » suivi de n'importe quel caractère unique, se terminant par « a » :

.*gi.a.*
Copier après la connexion

Pour faire correspondre un point littéral, échappez-le à l'aide d'une barre oblique :

\.
Copier après la connexion

Implémentation du Comparateur

À l'aide d'expressions régulières, nous pouvons maintenant implémenter un Java comparateur qui se comporte comme l'opérateur SQL 'LIKE' :

import java.util.Comparator;
import java.util.regex.Pattern;

public class LikeComparator implements Comparator<String> {

    @Override
    public int compare(String s1, String s2) {
        Pattern pattern = Pattern.compile(s2);
        return pattern.matcher(s1).matches() ? 0 : 1;
    }
}
Copier après la connexion

Exemple d'utilisation

Pour utiliser le comparateur, instanciez-le simplement et comparez les chaînes à l'aide de l'option 'comparer' méthode :

LikeComparator comparator = new LikeComparator();

System.out.println(comparator.compare("digital", "%ital%")); // true
System.out.println(comparator.compare("digital", "%gi?a%")); // true
System.out.println(comparator.compare("digital", "digi%")); // true
System.out.println(comparator.compare("digital", "%cam%")); // false
System.out.println(comparator.compare("digital", "tal%")); // false
Copier après la connexion

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