Edit:
Попробуйте это,
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 (строка .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;
}
у виду string.Empty; ? – Mikatsu
@ Микацу, что это? – ddmps
string.Empty - это строка длиной 0 – Mikatsu