对于任何String x
,调用x.compareTo(y)
时是否会始终返回负数String y
?同样,是否有x
总会返回正数?感谢。
答案 0 :(得分:5)
没有。它总会有一个返回0的情况 - 那就是将字符串与同一个字符串进行比较。
答案 1 :(得分:1)
否,因为x.compareTo(x)
对于任何0
都是x
,因为可以从源代码中推断出来(并且假设订单应该是连贯的):
1174 public int compareTo(String anotherString) {
1175 int len1 = count;
1176 int len2 = anotherString.count;
1177 int n = Math.min(len1, len2);
1178 char v1[] = value;
1179 char v2[] = anotherString.value;
1180 int i = offset;
1181 int j = anotherString.offset;
1182
1183 if (i == j) {
1184 int k = i;
1185 int lim = n + i;
1186 while (k < lim) {
1187 char c1 = v1[k];
1188 char c2 = v2[k];
1189 if (c1 != c2) {
1190 return c1 - c2;
1191 }
1192 k++;
1193 }
1194 } else {
1195 while (n-- != 0) {
1196 char c1 = v1[i++];
1197 char c2 = v2[j++];
1198 if (c1 != c2) {
1199 return c1 - c2;
1200 }
1201 }
1202 }
1203 return len1 - len2;
1204 }
现在,如果您的问题是关于最小和最大字符串,并且您接受0来比较x与其自身,那么相同的代码显示将任何字符串添加到字符串会产生“更大”字符串。
答案 2 :(得分:0)
在Java中, a.compareTo(b)将返回:
我希望这会有所帮助