在我的班级 Main 中,我正在尝试获取一个 xml 文件,将其转换为字符串,对其进行标记并将其放入一个数组列表中,然后使用子列表清除大部分 ArrayList 值,然后清除该子列表这样我就可以摆脱我不需要的数据并保留我确实需要的数据。在我试图清除我不需要的数据之前,一切都很好。发生的事情是第一个子列表 clear 有效,但第二个子列表 clear 没有。我研究并排除了几个小时的故障,以找出为什么这不起作用,但我没有想出任何东西。如果有帮助,我正在为 Web 开发人员使用 Eclipse Kepler Java EE IDE。
package mccoy.alfred.project;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("http://themoneyconverter.com/rss-feed/USD/rss.xml");
InputStream stream = url.openStream();
BufferedInputStream buf = new BufferedInputStream(stream);
StringBuilder sb = new StringBuilder();
ArrayList<String> tokenList = new ArrayList<String>();
int tokenNum = 0;
while (true) {
int data = buf.read();
if (data == -1) {
break;
}
else {
sb.append((char)data);
}
}
String xmlFile = sb.toString();
StringTokenizer st = new StringTokenizer(xmlFile);
System.out.println("tokens count: " + st.countTokens());
while (st.hasMoreElements()) {
String token = st.nextElement().toString();
tokenList.add("Token " + tokenNum + " = " + token);
tokenNum++;
}
tokenList.set(64, "Token 64 = Dirham");
tokenList.subList(0, 56).clear();
tokenList.subList(65, 77).clear();
System.out.println(tokenList);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我会将代码输出的内容放到控制台,但它很长。同样,代码中不起作用的部分是:
tokenList.subList(0,56).clear();
tokenList.subList(65,77).clear();
另外,如果有帮助,我计划添加更多子列表并在有人可以解决此问题时清除它们。感谢您忍受这么长的帖子,并提前感谢您帮助我解决这个问题!