我怎样才能比较两个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")
它会输出一个很好的解决你的问题的根。