startsWith
是String
类中的一个方法;您使用的是原始 LinkedList 类型,因此它被视为LinkedList<Object>
. 如果您想使用字符串,请将其设为LinkedList<String>
.
startsWith
只接受String
参数,不接受char
参数。改为使用startsWith("\"")
。
- 您提供的第二个参数
startsWith
是多余的;不提供第二个参数将假定起始位置为 0。
- 你的
if
语句后面有一个多余的分号。这将导致if
身体被视为空的。一定要删除这个分号,并且可以选择使用花括号。
您修改后的解决方案可能如下所示:
LinkedList<String> list1 = new LinkedList<String>();
// [...] Populate the list accordingly here
for(int i=1; i < list1.count(); i++){
if (list1.get(i).startsWith("\"")) {
list1.remove(i);
}
}
补充笔记:
- 您的 for 循环从索引 1 开始。请注意,这不会删除第一个元素。我确定这是否是您想要的行为。
- 当您删除列表中的元素时,列表中后面元素的索引将发生变化。
例如:
[ "a", "b", "c", "d" ]
^
(remove element at index 0)
[ "b", "c", "d" ]
^
(remove element at index 1... uh oh, we missed "b"!)
[ "b", "d" ]
^
(remove element at index 2... ERROR; index out of bounds)