Подтвердить что ты не робот

Как я могу сравнить две строки в java и определить, какая из них меньше, чем другая в алфавитном порядке?

Я хочу использовать алгоритм бинарного поиска для поиска строки, введенной пользователем в очень большом отсортированном файле. Я не могу сравнить строку, введенную пользователем, с строкой, которая была расположена в средней строке файла, чтобы продолжить мой двоичный поиск.

Например, если пользовательская строка abcda и строка файла abcza, очевидно, что пользовательская строка меньше, чем строка файла. Как это реализовано в java? это будет здорово, если вы сможете помочь мне с образцом кода.

4b9b3361

Ответ 1

Ты можешь использовать

str1.compareTo(str2);

Если str1 лексикографически меньше, чем str2, будет возвращено a negative number, 0 если оно равно, или a positive number если str1 больше.

Например,

"a".compareTo("b"); // returns a negative number, here -1
"a".compareTo("a"); // returns  0
"b".compareTo("a"); // returns a positive number, here 1
"b".compareTo(null); // throws java.lang.NullPointerException

Ответ 2

Если вы хотите игнорировать дело, вы можете использовать следующее:

String s = "yip";
String 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{
    // strings are equal.
}

Ответ 3

Разве вы не слышали о интерфейсе Comparable, который реализуется String? Если нет, попробуйте использовать

"abcda".compareTo("abcza")

И он выдаст хороший корень для решения вашей проблемы.