根据String#CompareTo的最小字符串
好吧,我确信这必须存在于某处,但我似乎无法找到它。
是否存在,如果存在什么,则根据String#CompareTo
的最小(非空) String
序列?
我猜""
但我不完全确定。
给定String#compareTo
(请参阅source )的实现,您可以validation大小为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
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; }
没有最小长度,因为您可以有效地将两个空字符串与"".compareTo("")
是的,它是一个没有值的空字符串。
看看这个示例代码:
String str = ""; str.compareTo("");
是的,最小长度字符串将是一个长度为0的空字符串“”。我不认为会有这样一个长度小于0的字符串。