3

わかりました、これはここのどこかに存在するに違いないと確信していますが、見つけられないようです。

ある場合は、最小限の (null 以外の)StringシーケンスはありString#CompareToますか?

推測し""ていますが、完全にはわかりません。

4

5 に答える 5

1

編集:

これを試して、

   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の最小の長さ(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;
    }
于 2013-03-23T21:18:20.490 に答える
1

( sourceString#compareToを参照)の実装を考えると、サイズ 0 の文字列 (したがって空の文字列) が常に他の非 null 文字列よりも劣るか、等しいことを確認できます。(空文字列と比較した場合は等しい)。

于 2013-03-23T21:07:53.290 に答える
0

2 つの空の文字列を有効に比較できるため、最小長はありません。"".compareTo("")

于 2013-03-23T21:04:00.973 に答える
0

はい、値が含まれていない空の文字列です。

このサンプル コードを見てください。

String str = "";
str.compareTo("");
于 2013-03-23T21:05:19.510 に答える
0

はい、最小長の文字列は、長さが 0 の空の文字列 "" になります。長さが 0 未満の文字列は存在しないと思います。

于 2013-03-23T21:07:33.600 に答える