Ok, I\'m sure that this must exist on here somewhere, but I can\'t seem to find it.
Is there, and if there is what is, a minimum (non-null) String
seque
There is no minimum length, since you can validly compare two empty strings with "".compareTo("")
Edit:
Try this,
String s="";
String s1=new String(new char[-2]); // Here you will get NagativeArraySize Exception
System.out.println(s1.compareTo(s));
Here compareTo returns nothing in System.out.println(), so the minimum string will be "" or String.Empty
AFAIK, There is no minimum lenght and you can not find a string with the length <0, so the minimum length for the string 0 (string.Empty or "").
Check this source code of 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;
}
Given the implementation of String#compareTo
(see source) you can verify that a string of size 0 (thus the empty string) will always be inferior or equal to any other non null string. (equal in case of comparing to the empty string).
Yes the minimum length string will be an empty string "" with a length of 0. I don't think there will be such a string with length less than 0.
Yes it is a empty String with not values in it.
Take a look at this sample code :
String str = "";
str.compareTo("");