好吧,我敢肯定,这必须存在于这里的某个地方,但我似乎无法找到它。
在那里,如果有什么,最小的(非空) String
按顺序String#CompareTo
?
我猜""
但我不能完全肯定。
好吧,我敢肯定,这必须存在于这里的某个地方,但我似乎无法找到它。
在那里,如果有什么,最小的(非空) String
按顺序String#CompareTo
?
我猜""
但我不能完全肯定。
鉴于执行String#compareTo
(见源 )可以验证尺寸0(因此空字符串)的字符串将始终小于或等于任何其他非空字符串。 (在比较为空字符串的情况下,相等)。
编辑:
试试这个,
String s="";
String s1=new String(new char[-2]); // Here you will get NagativeArraySize Exception
System.out.println(s1.compareTo(s));
这里的compareTo返回没什么的System.out.println(),所以最小的字符串将是“”或的String.Empty
据我所知,没有最低lenght,你不能找到长度<0的字符串,因此对于串0的最小长度(或的String.Empty“”)。
检查的CompareTo此源代码,
public int compareTo(String anotherString) {
int len1 = count; // original string count
int len2 = anotherString.count; // comparision string count
int n = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
if (i == j) {
int k = i;
int lim = n + i;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
} else {
while (n-- != 0) {
char c1 = v1[i++];
char c2 = v2[j++];
if (c1 != c2) {
return c1 - c2;
}
}
}
return len1 - len2;
}
没有最小长度,因为你可以有效地比较两个空字符串"".compareTo("")
是的,它是一个空字符串,在它没有价值。
看看此示例代码:
String str = "";
str.compareTo("");
是的最小长度的字符串将是一个空字符串“”有长度为0的,我不认为会有长度小于0这样的字符串。