Java 根据字符串的最小字符串#比较

Java 根据字符串的最小字符串#比较,java,string,compareto,Java,String,Compareto,好的,我肯定这一定存在于这里的某个地方,但我似乎找不到它 根据String#CompareTo,是否存在最小(非空)的String序列 我在猜测,但我不完全确定。没有最小长度,因为你可以有效地比较两个空字符串与”。比较(“”是的,它是一个没有值的空字符串 请看以下示例代码: String str = ""; str.compareTo(""); 是,最小长度字符串将是长度为0的空字符串“”。我认为不会有长度小于0的字符串。考虑到string#compareTo(请参阅)的实现,您可以验证大小为

好的,我肯定这一定存在于这里的某个地方,但我似乎找不到它

根据
String#CompareTo
,是否存在最小(非空)的
String
序列


我在猜测,但我不完全确定。

没有最小长度,因为你可以有效地比较两个空字符串与
”。比较(“”
是的,它是一个没有值的空字符串

请看以下示例代码:

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

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

考虑到
string#compareTo
(请参阅)的实现,您可以验证大小为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



好吧,这里没有最小长度,您找不到长度为的字符串,您是说string.Empty@Mikatsu那是什么?string.Empty是长度为0的字符串,长度不能小于0,所以“”实际上是最小长度,不是吗?是的,我假设这是隐式的。也就是说,除了一根弦的最小长度之外,这个特定操作没有最小长度序列。这并不能回答这个问题。我不是要求最小长度,我是要求按照字典排序的最小字符串。我明白了,我一定是误解了。也许你可以在问题中说,这并不能回答问题。我没有要求最小长度,我要求的是按照字典顺序排列的最小字符串。虽然这显然是正确的答案,但这个例子并不能真正证明…我没有要求最小长度,而是+1表示回答问题的代码。
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;
    }