最小的字符串作为每串#的CompareTo(Minimum string as per String

2019-07-22 22:54发布

好吧,我敢肯定,这必须存在于这里的某个地方,但我似乎无法找到它。

在那里,如果有什么,最小的(非空) String按顺序String#CompareTo

我猜""但我不能完全肯定。

Answer 1:

鉴于执行String#compareTo (见源 )可以验证尺寸0(因此空字符串)的字符串将始终小于或等于任何其他非空字符串。 (在比较为空字符串的情况下,相等)。



Answer 2:

编辑:

试试这个,

   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


据我所知,没有最低lenght,你不能找到长度<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;
    }


Answer 3:

没有最小长度,因为你可以有效地比较两个空字符串"".compareTo("")



Answer 4:

是的,它是一个空字符串,在它没有价值。

看看此示例代码:

String str = "";
str.compareTo("");


Answer 5:

是的最小长度的字符串将是一个空字符串“”有长度为0的,我不认为会有长度小于0这样的字符串。



文章来源: Minimum string as per String#CompareTo