Tri des chaînes avec des nombres intégrés
Dans ce scénario, vous avez une exigence spécifique pour les comparaisons de chaînes, où la partie principale est comparée lexicalement, et si elles correspondent, les valeurs entières intégrées deviennent la base de comparaison. Pour y parvenir, compte tenu de la présence variable d'espaces autour des valeurs numériques, une approche personnalisée est proposée.
Algorithme Alphanum
Une solution recommandée consiste à utiliser l'algorithme "Alphanum " comme suggéré par le site Web mentionné dans la réponse. Cet algorithme fournit un comportement de tri cohérent qui correspond à la perception humaine.
Mise en œuvre
L'algorithme Alphanum fonctionne en comparant de manière itérative les caractères du début et de la fin des chaînes jusqu'à une inadéquation. est rencontré. Lorsqu'une section différente est trouvée, il extrait les nombres intégrés à l'aide d'expressions régulières. Si les chaînes contiennent des nombres convertibles, il effectue une comparaison numérique ; sinon, il effectue une comparaison lexicale sur la section extraite.
Implémentation du comparateur
Une implémentation du comparateur Java de l'algorithme Alphanum est disponible sur le lien fourni. En intégrant ce comparateur, vous pouvez trier les chaînes selon les spécifications souhaitées, en donnant la priorité aux comparaisons lexicales pour les parties non numériques et en tirant parti des comparaisons numériques pour les valeurs entières intégrées.
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!