【发布时间】:2016-04-28 11:21:44
【问题描述】:
假设我们有一个数组项列表
例如:- a,b,c,d
需要从充满数据的文件中删除,我遗漏了一些东西,任何人都可以帮助我实现这一点,在此先感谢
public static void rmvFromXML(String strFilePath,
String strTmpFilePath) throws IOException {
String currentLine = "";
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
BufferedReader reader = new BufferedReader(new FileReader(strFilePath));
BufferedWriter fileWriter = null;
fileWriter = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(strTmpFilePath)));
while ((currentLine = reader.readLine()) != null) {
String trimmedLine = currentLine.trim();
System.out.println("Trimmed Line :- " + trimmedLine);
for (String value : list) {
System.out.println("Array Value:- " + value);
if (trimmedLine.equals(value))
continue;
fileWriter.write(trimmedLine + System.getProperty("line.separator"));
}
}
fileWriter.close();
reader.close();
}
【问题讨论】:
-
一些注意事项:这样的方法对于单元测试来说是完美的。如果您要进行 TDD;您可能不需要来这里寻求帮助调试您的代码。因为你会以小的增量编写和测试你的代码;而且您最终不会得到“只是不起作用”的大块。然后:为什么要使用列表?如果你把这些东西放到一个集合中......你做一个简单的“set.contains”;因此无需一直迭代您的列表。最后:“列表”是一个坏名字。名称应该说明它们背后的对象意思;不是他们“是”。 (如 valuesToDropFromInput )
-
您想从一行中删除特定的字符串并且 . bt 你正在用你想要删除的字符串在整行上做一个 equals 。错了吗?