【发布时间】:2014-09-17 05:38:55
【问题描述】:
代码
ArrayList<String> tokens = new ArrayList<String>();
ArrayList<String> PRINT = new ArrayList<String>();
String tok = "";
for(String element : list) {
StringTokenizer st = new StringTokenizer(element);
if(!element.startsWith("PRINT")) {
while(st.hasMoreTokens()) {
tok = st.nextToken();
tokens.add(tok);
for(String key : expression.keySet())
if(tok.equals(key))
System.out.println(tokens.get(0) + " changed from " + expression.get(key) + " to " + Integer.parseInt(tokens.get(2)));
}
expression.put(tokens.get(0),Integer.parseInt(tokens.get(2)));
tokens.clear();
}
我在下面一行得到一个数组越界异常
System.out.println(tokens.get(0) + " changed from " + expression.get(key) + " to " + Integer.parseInt(tokens.get(2))
我知道 tokens.get(0) = "A"、tokens.get(1) = "=" 和 tokens.get(2) = "7"
【问题讨论】:
-
看来你知道的不正确
-
考虑提供一个runnable example 来证明您的问题。这将减少混乱并获得更好的响应
-
你可以在for循环之前打印token.size()来进行交叉检查吗?
-
保重
{}内部块for loop!!! -
我猜问题可能是我的文件包含 A = 6 行,但它读取为“A=6”,对此有何帮助?
标签: java indexoutofboundsexception stringtokenizer