【发布时间】:2013-11-06 12:53:37
【问题描述】:
我想使用Iterator interface 循环通过一个名为fileContent 的ArrayList<String>,并且我希望一次分析一个字符串,这将导致switch statement 产生特定状态,具体取决于它是什么字符串。
对象标记应该被读取为“表”。
void process() {
Iterator fileIterator = fileContent.iterator();
int state = 0;
Object token = null;
switch (state) {
case 0:
token = fileIterator.next();
if (token.equals("Table")) {
System.out.println(token);
state = 1;
} else {
System.err.println("Corrupt file format at state 0: "+ token);
System.exit(0);
}
break;
}
}
这不会将状态切换为 1,而是打印出来:
'Corrupt file format at state 0: Table'
因此,它似乎正确地将对象标记读取为“表”,但不适用于语句 'if (token.equals("Table"))'。
我也试过'if (token == ("Table"))'
有人可以帮帮我吗?
【问题讨论】:
-
如果你这样做
"Table".equals(token.toString())怎么办? -
我会去调试看看到底是什么令牌
标签: java if-statement arraylist iterator switch-statement