我如何在java中比较两个字符串,并定义其中哪个字符串按字母顺序小于另一个字符串?

2022-08-31 13:17:51

我想使用二进制搜索算法来搜索用户在非常大的排序文件中输入的字符串。我无法将用户输入的字符串与位于文件中间行的字符串进行比较,以继续我的二进制搜索。

例如,如果用户的字符串是 ,而文件的字符串是 ,则很明显用户的字符串小于文件的字符串。它是如何在java中实现的?如果你能帮助我一个示例代码,那就太好了。abcdaabcza


答案 1

您可以使用

str1.compareTo(str2);

如果 str1 在字典上小于 str2,则在等于或 str1 大于时将返回。a negative number0a positive number

例如,

"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.
}

推荐