好的,我确信这必须存在于某个地方,但我似乎无法找到它。
是否存在根据String
的最小(非空)String#CompareTo
序列?
我猜""
但我不完全确定。
答案 0 :(得分:1)
鉴于String#compareTo
的实现(请参阅source),您可以验证大小为0的字符串(因此空字符串)将始终低于或等于任何其他非空字符串。 (在与空字符串比较的情况下相等)。
答案 1 :(得分:1)
修改强>
试试这个,
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
AFAIK,没有最小长度,你找不到长度为< 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;
}
答案 2 :(得分:0)
没有最小长度,因为您可以有效地将两个空字符串与"".compareTo("")
答案 3 :(得分:0)
是的,它是一个没有值的空字符串。
看看这个示例代码:
String str = "";
str.compareTo("");
答案 4 :(得分:0)
是的,最小长度字符串将是一个长度为0的空字符串“”。我认为不会有这样一个长度小于0的字符串。