Comment puis-je comparer deux chaînes en Java et définir lesquelles sont plus petites que l’autre alphabétiquement?

Je souhaite utiliser l’algorithme de recherche binary pour rechercher la chaîne saisie par l’utilisateur dans un très gros fichier sortingé. Je ne peux pas comparer la chaîne saisie par l’utilisateur avec la chaîne située dans la ligne médiane du fichier pour poursuivre ma recherche binary.

Par exemple, si la chaîne de l’utilisateur est abcda et que la chaîne du fichier est abcza , il est évident que la chaîne de l’utilisateur est plus petite que la chaîne du fichier. Comment est-il implémenté dans Java? Ce serait génial si vous pouviez m’aider avec un exemple de code.

Vous pouvez utiliser

 str1.compareTo(str2); 

Si str1 est lexicographiquement inférieur à str2 , a negative number sera retourné, 0 si égal ou a positive number si str1 est plus grand.

Par exemple,

 "a".compareTo("b"); // returns a negative number, here -1 "a".compareTo("a"); // returns 0 "b".compareTo("a"); // returns a positive number, here 1 

Si vous souhaitez ignorer le cas, vous pouvez utiliser les éléments suivants:

 Ssortingng s = "yip"; Ssortingng best = "yodel"; int compare = s.compareToIgnoreCase(best); if(compare < 0){ //-1, --> s is less than best. ( s comes alphabetically first) } else if(compare > 0 ){ // best comes alphabetically first. } else{ // ssortingngs are equal. } 

Vous n’avez pas entendu parler de l’interface Comparable implémentée par Ssortingng ? Si non, essayez d’utiliser

 "abcda".compareTo("abcza") 

Et cela produira une bonne racine pour une solution à votre problème.