2013-06-27 40 views

回答

5

不。总是会有一个情况,当返回0 - 这是字符串比较相同的字符串。

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与自身的比较,那么相同的代码显示将任何字符添加到一个字符串会产生一个“更大”的字符。

0

在Java中,a.compareTo(b)中将返回:

  • 负INT如果一个< b
  • 如果一个== b
  • A正整数如果a> b

我希望这有助于

相关问题