我想使用二进制搜索算法来搜索用户在一个非常大的排序文件中输入的字符串.我无法将用户输入的字符串与位于文件中间行的字符串进行比较,以继续我的二进制搜索.
例如,如果用户的字符串是abcda,并且文件的字符串是abcza,则很明显用户的字符串小于文件的字符串.它是如何在java中实现的?如果您可以帮我提供示例代码,那将会很棒.
Joh*_*erg 121
您可以使用
str1.compareTo(str2);
Run Code Online (Sandbox Code Playgroud)
如果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
Run Code Online (Sandbox Code Playgroud)
如果您想忽略大小写,可以使用以下内容:
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.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152630 次 |
| 最近记录: |