compareTo是按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。
int value=str1.compareTo(str2);
当str1小于str2时,返回小于0的值,当str1与str2相同时,返回0,当str1大于str2时,返回大于0的值。
[b]具体的比较分2种情况,如下:[/b]
[b]情况1.当一个字符串是另一个字符串前缀时,比较的是两个字符串长度的差异[/b]
int value="abc".compareTo("abcde"); //返回-2 比较的是字符串长度
int value="abcdfg".compareTo("abc"); //返回3 比较的是字符串长度
[b]情况2.当一个字符串不是另一个字符串前缀时,比较的是从左边起的第一个差异位置的unicode的差值[/b]
比如:
例1
"abcd".compareTo("aecb");
从左边数,第一个差异位置的Unicode之差,也就是(int)'b'-(int)'e'的值
例2:
"abcd".compareTo("a汉字ecb");
(int)'b'-(int)'汉';//返回值等于上面的"abcd".compareTo("a汉字ecb");
例3:
"abc".compareTo("拼音abc");
(int)'a'-(int)'拼';//返回值等于上面的 "abc".compareTo("拼音abc");
int value=str1.compareTo(str2);
当str1小于str2时,返回小于0的值,当str1与str2相同时,返回0,当str1大于str2时,返回大于0的值。
[b]具体的比较分2种情况,如下:[/b]
[b]情况1.当一个字符串是另一个字符串前缀时,比较的是两个字符串长度的差异[/b]
int value="abc".compareTo("abcde"); //返回-2 比较的是字符串长度
int value="abcdfg".compareTo("abc"); //返回3 比较的是字符串长度
[b]情况2.当一个字符串不是另一个字符串前缀时,比较的是从左边起的第一个差异位置的unicode的差值[/b]
比如:
例1
"abcd".compareTo("aecb");
从左边数,第一个差异位置的Unicode之差,也就是(int)'b'-(int)'e'的值
例2:
"abcd".compareTo("a汉字ecb");
(int)'b'-(int)'汉';//返回值等于上面的"abcd".compareTo("a汉字ecb");
例3:
"abc".compareTo("拼音abc");
(int)'a'-(int)'拼';//返回值等于上面的 "abc".compareTo("拼音abc");