根据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的字符串。