是否有 a在被调用String x
时总是返回负数x.compareTo(y)
,对于 any String y
?同样,是否有一个x
总是返回正数的?谢谢。
问问题
165 次
3 回答
5
不,当返回 0 时总会有一种情况 - 就是将字符串与相同的字符串进行比较。
于 2013-06-27T17:25:39.503 回答
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 与自身,那么相同的代码显示将任何字符添加到字符串会产生“更大”的字符。
于 2013-06-27T17:26:33.407 回答
0
在 Java 中,a.compareTo(b)将返回:
- 如果a < b则为负整数
- 0如果a == b
- 如果a > b则为正整数
我希望这有帮助
于 2013-06-27T17:27:37.507 回答