1

ArrayList要素 10 (「意志」という単語) を除いて、すべての要素を に表示したいと考えています。どうすればいいですか?以下のコードを実行すると、何も表示されません。

 private void practiceButtonActionPerformed(java.awt.event.ActionEvent evt) {
     ArrayList <String> practice1 = new ArrayList();
     Collections.addAll(practice1, "If", "she", "boarded", "the", "flight"
                        , "yesterday", "at",  "10:00,", "she", "will", "be"
                        , "here", "anytime", "now.");
     contentTextPane.setText(practice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13));
 }
4

6 に答える 6

4

次のように、リストの 10 番目の要素を削除できます。

someList.remove(10);

次のように、リストの各要素を連結できます。

StringBuilder text = new StringBuilder();
for (String thisString : someList) {
    text.append(thisString).append(" ");
}

// test it
System.out.println(text.toString());
于 2012-06-12T02:45:13.123 に答える
3

この線

practice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13)

あなたが思っていることをしません。これは 0 + 1 + 2 + ... + 13 の値を計算し、ArrayList. ArrayListこれほど多くの要素がないため、例外がスローされますIndexOutOfRange

10 番目の要素を除くすべてを表示する場合は、ループを使用してみてください。

StringBuilder builder = new StringBuilder();
for (int i = 0; i < practice1.size(); i++) {
    if (i != 10) {
        builder += practice1.get(i);
    }
}
contextTextPane.setText(builder.toString());

お役に立てれば!

于 2012-06-12T02:45:28.383 に答える
3

存在しない構文を使用してリストから要素を取得しているため、何も表示されません

0+1+2+3+4+5+6+7+8+9+11+12+13

すべての数値の合計として評価され、境界外になる要素を取得するために使用されます。

あなたがする必要があるのは次のようなものです

String r = "";
for (int i = 0; i < practice.size(); ++i)
  if (i != 10)
    r += practice.get(i);

contentTextPane.setText(r);
于 2012-06-12T02:45:54.463 に答える
2
private void practiceButtonActionPerformed(java.awt.event.ActionEvent evt) {
    ArrayList <String> practice1 = new ArrayList();

    Collections.addAll(practice1, "If", "she", "boarded", "the", "flight", "yesterday", "at",  
 "10:00,", "she", "will", "be", "here", "anytime", "now.");

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < practice1.size(); i++) {
        if (i == 10) {
            continue;
        }
        sb.append(practice1.get(i));
        if (i != practice1.size()-1) {
            sb.append(' ');
        }
    }

    contentTextPane.setText(sb.toString());
}
于 2012-06-12T02:46:38.160 に答える
1

を呼び出すpractice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13)と、arrayIndexOutOfBoundsException をスローして、引数値の合計に等しいインデックス 81 の実際のオブジェクトが得られます。

代わりに、値を反復処理して StringBuilder に追加する必要があります。

StringBuilder sb = new StringBuilder();
for (int i = 0; i < practice1.size(); i++) {
    if (i != 10) {
        sb.append(practice1.get(i));
        sb.append(" ");
    }
}
contentTextPane.setText(sb.substring(0, sb.length() - 1));
于 2012-06-12T02:46:51.463 に答える
0

これを使用してみてください:

practice1.get(0) + practice1.get(1) + ... 

... これの代わりに:

contentTextPane.setText( practice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13) );

ループを使用するのが最善ですが。

于 2012-06-12T02:45:24.110 に答える