我希望显示ArrayList
中的所有元素,除了元素10(单词“will”)。我该怎么做呢?当我运行以下代码时,它什么也没显示。
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));
}
答案 0 :(得分:4)
您可以删除列表中的第10个元素:
someList.remove(10);
您可以像这样连接列表中的每个元素:
StringBuilder text = new StringBuilder();
for (String thisString : someList) {
text.append(thisString).append(" ");
}
// test it
System.out.println(text.toString());
答案 1 :(得分:3)
该行
practice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13)
不按照您的想法行事。这将计算0 + 1 + 2 + ... + 13的值,然后在ArrayList
中查找该条目。由于您的ArrayList
没有这么多元素,因此会抛出IndexOutOfRange
例外。
如果要显示除第十个元素以外的所有内容,请尝试使用循环:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < practice1.size(); i++) {
if (i != 10) {
builder += practice1.get(i);
}
}
contextTextPane.setText(builder.toString());
希望这有帮助!
答案 2 :(得分: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);
答案 3 :(得分: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());
}
答案 4 :(得分:1)
调用practice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13)
会在实践1中为索引81提供对象,该对象等于参数值的总和,抛出ArrayIndexOutOfBoundsException。
相反,您应该遍历这些值并将它们添加到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));
答案 5 :(得分:0)
尝试使用:
practice1.get(0) + practice1.get(1) + ...
......而不是:
contentTextPane.setText( practice1.get(0+1+2+3+4+5+6+7+8+9+11+12+13) );
虽然最好使用循环。