11

argsコンストラクターを呼び出して配列を作成する方法は?

StringBuilder[] sb=new StringBuilder[100];

しかし、sb[0] をチェックすると null です。sb[0] から sb[99] を "" で初期化したい。

次の結果はエラーになります。

StringBuilder[] sb=new StringBuilder[100]("");

編集: または、これを行う必要があります:

for(StringBuilder it:sb)
{
  it=new StringBuilder("");
}
4

6 に答える 6

18

コードで行うことは、100 個の StringBuilder の準備が整った配列を初期化することだけです。実際には入力されません。

あなたはこれを行うことができます:

StringBuilder[] sb=new StringBuilder[100];

for (int i = 0; i < sb.length; i++) {
    sb[i] = new StringBuilder("");
}

それはあなたのためにそれをするはずです。

于 2013-03-20T10:21:12.087 に答える
3

それは常になりますnull。そこに入れたい場合は、手動で初期化する必要""があります。

""代わりに、値が の場合に返すメソッドで配列にアクセスできますnull

于 2013-03-20T10:17:46.737 に答える
2

配列内のすべての値は、null設定されていない限り...手動で各値を初期化する必要があります

StringBuilder[] sb=new StringBuilder[100];
for(int i=0; i<sb.length; i++) {
    sb[i]=new StringBuilder();
}

また...

StringBuilder[] sb=new StringBuilder[]{new StringBuilder(), new StringBuilder(), etc}

(たくさんのエントリを持つ配列には最初の方法をお勧めします)

于 2013-03-20T10:23:38.327 に答える
2
StringBuilder[] sb = new StringBuilder[100];
for(int i=0;i<100;i++) {
    sb[i] = new StringBuilder("");
}
于 2013-03-20T10:20:02.467 に答える
0

Java での参照渡しの興味深いアプリケーション。

以下が機能することに注意してください-

StringBuilder[] array = new StringBuilder[10];
for (int i= 0; i < 10; i++) {
    array [i] = new StringBuilder("");
}

しかし、以下は機能しません -

StringBuilder[] array = new StringBuilder[10];
for (StringBuilder sb: array) {
    sb = new StringBuilder("");
}

これは、2 番目のケースではsb、配列の要素を参照する代わりに、新しい StringBuilder への参照が変数に割り当てられるためです。sb配列要素への参照が失われるため、配列要素は変更されません。

于 2021-03-11T08:02:34.143 に答える