Comparaison de chaînes naturelles en Java : est-elle intégrée ?
La classe Java String et la classe Comparator ne prennent pas directement en charge la comparaison de chaînes naturelles, qui donne la priorité à l'ordre lisible par l'homme plutôt qu'à l'ordre lexical. Cela devient particulièrement crucial lors de la comparaison de chaînes de version ou de noms de fichiers contenant des modèles numériques complexes.
Pour répondre à ce besoin, des bibliothèques externes fournissent des implémentations personnalisées. Une option populaire est le NaturalOrderComparator du projet Cougaar. Il adhère à un ensemble de règles qui déterminent l'ordre naturel des chaînes, comme par exemple considérer "10" supérieur à "5" malgré leur ordre alphabétique.
Voici un exemple d'extrait Java qui utilise NaturalOrderComparator :
<code class="java">import org.cougaar.util.Comparisons; import java.util.Arrays; public class NaturalStringComparison { public static void main(String[] args) { String[] strings = {"image1.jpg", "image9.jpg", "image10.jpg", "1.2.9.1", "1.2.10.5"}; // Sort using natural order Arrays.sort(strings, new Comparisons.NaturalOrderComparator()); // Expected output: // [image1.jpg, image9.jpg, image10.jpg, 1.2.9.1, 1.2.10.5] System.out.println(Arrays.toString(strings)); } }</code>
En utilisant cette bibliothèque externe, vous pouvez facilement réaliser une comparaison naturelle des chaînes dans vos programmes Java sans réinventer la roue. Il aide à maintenir l'ordre prévu des chaînes, ce qui le rend adapté à divers scénarios où un tri lisible par l'homme est souhaité.
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!