是否有一个String x
,当调用x.compareTo(y)
时,对于任何String y
,总是会返回一个负数?同样,是否有一个x
总会返回一个正数?谢谢。Java中总是返回compareTo的某个结果的字符串?
2
A
回答
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
我希望这有助于
相关问题
- 1. 溢出compareTo的返回结果吗?
- 2. 存储的prodecure结果总是返回-1在返回结果
- 3. 为什么Int16.CompareTo从Int32返回不同的结果.CompareTo
- 4. Date compareTo()方法总是返回-1
- 5. 字符串的SHA1是否总是返回ASCII字符?
- 6. 返回字符串中的子串的所有结果
- 7. xpathGetString总是返回空字符串
- 8. 字符串比较总是返回false
- 9. Node.js url.parse结果返回字符串
- 10. 是否std :: string :: c_str()总是返回一个以null结尾的字符串?
- 11. managedQuery总是返回相同的结果
- 12. SimpleDateFormat总是返回相同的结果
- 13. ALU总是返回Z的结果
- 14. 字符串compareTo
- 15. 的UITextField的.text属性总是返回一个空字符串
- 16. Yepnope回调总是返回'结果= false'
- 17. 在Java中返回一个字符串
- 18. 查询返回的结果为int而不是字符串
- 19. %×返回空字符串,而不是实际的结果
- 20. 如何返回字符串中的某个字,如果它以某个字符开头? (Python)
- 21. Python的输入总是返回一个字符串
- 22. Java Socket:NTP应用程序总是返回空字符串
- 23. PHP preg_match返回字符串的字符数而不是预期的结果
- 24. 从Select语句的结果返回前三个字符串
- 25. 返回使用'contains'比较两个字符串的结果
- 26. Field.set返回Java中的空字符串
- 27. 的Java lastIndexOf总是返回-1,如果字符是空间的fromIndex设置
- 28. Java字符串分割返回空结果
- 29. NHibernate.Linq与的CompareTo字符串
- 30. 在java中比较两个字符串 - 的compareTo
不,的compareTo是自反 – nachokk