2

私はJavaの初心者であり、Oracleのチュートリアルから配列について読んでいます。

私の質問にはこのコードが含まれます:

class ArrayCopyDemo {
    public static void main(String[] args) {
        char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
            'i', 'n', 'a', 't', 'e', 'd' };
        char[] copyTo = new char[7];

        System.arraycopy(copyFrom, 2, copyTo, 0, 7);
        System.out.println(new String(copyTo));
    }
}

具体的には、

 System.out.println(new String(copyTo));

new String(copyTo)は正確に何をするのでしょうか、それともなぜnewとStringを使用するのでしょうか。彼らは一緒に何をしていますか?(私は彼らが「カフェイン」を印刷することを理解していますが、それは非常に一般的な意味でのみです。

4

4 に答える 4

6

JavaDocはあなたの友達です:

public String(char[] 値)

文字配列引数に現在含まれている一連の文字を表すように、新しい String を割り当てます。文字配列の内容がコピーされます。文字配列を後で変更しても、新しく作成された文字列には影響しません。

パラメーター:

value - 文字列の初期値

于 2013-02-15T16:44:16.633 に答える
2

new String(copyTo) は正確には何をしますか、

新しい String オブジェクトを作成します。String クラスには、char 配列を受け入れるコンストラクターがあり、char 配列を文字列リテラルに変換します。

new String(char[] arr) ソース

文字配列引数に現在含まれている一連の文字を表すように、新しい String を割り当てます。文字配列の内容がコピーされます。文字配列を後で変更しても、新しく作成された文字列には影響しません。

于 2013-02-15T16:44:29.290 に答える
0

パラメータとして渡す配列によって定義されたテキストを含む新しいStringオブジェクトを作成します。これは、クラスでchar定義されているコンストラクターの 1 つにすぎません。見てみましょう。String

public String(char value[]) {
    this.offset = 0;
    this.count = value.length;
    this.value = StringValue.from(value); //returns a copy of the char array
                                          //by using Array.copyOf
}

JavaDocを見るだけでなく、のコードを掘り下げると、そのString仕組みを理解するのに役立ちます。に準拠するthis.valueを割り当てるために使用される内部配列です。charString

于 2013-02-15T16:45:39.037 に答える
0

この関数printlnは type のみを受け入れますString。あなたが持っているのはchar配列です。

newキーワードは、それStringがクラスのコンストラクタであることを示します(String新しいStringオブジェクトの構築など)。

Android Developers サイトには、可能なすべてのコンストラクターのリストがあります: http://developer.android.com/reference/java/lang/String.html

具体的には、使用しているものは次のとおりです。

String(char[] data)
于 2013-02-15T16:50:18.870 に答える