我怎样才能比较两个string在Java中,并定义其中哪一个比另一个字母小?

我想使用二进制searchalgorithmsearch用户在非常大的sorting文件中input的string。 我无法将用户input的string与已经位于文件中间行的string进行比较,以继续进行二进制search。

例如,如果用户的string是abcda ,并且文件的string是abcza ,那么显然用户的string比文件的string小。 它在java中如何实现? 如果你可以帮助我一个示例代码将是很好的。

您可以使用

 str1.compareTo(str2); 

如果str1按字典顺序小于str2 ,则返回a negative number ,如果相等则返回0 ,如果str1较大则返回 a 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 

如果你想忽略大小写,你可以使用以下内容:

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

你没有听说过由String实现的Comparable接口吗? 如果不是,请尝试使用

 "abcda".compareTo("abcza") 

它会输出一个很好的解决你的问题的根。