Minimum string as per String#CompareTo

前端 未结 5 860
轮回少年
轮回少年 2021-01-20 16:07

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

相关标签:
5条回答
  • 2021-01-20 16:28

    There is no minimum length, since you can validly compare two empty strings with "".compareTo("")

    0 讨论(0)
  • 2021-01-20 16:43

    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;
        }
    
    0 讨论(0)
  • 2021-01-20 16:44

    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).

    0 讨论(0)
  • 2021-01-20 16:47

    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.

    0 讨论(0)
  • 2021-01-20 16:54

    Yes it is a empty String with not values in it.

    Take a look at this sample code :

    String str = "";
    str.compareTo("");
    
    0 讨论(0)
提交回复
热议问题