【发布时间】:2018-01-12 00:49:32
【问题描述】:
大家好,这里是我的代码
public class Main {
public static List<String> globalList;
public static void main(String[] args) {
globalList = new ArrayList<String>();
File folder = new File("\\Documents\\Folder);
File[] listOfFiles = folder.listFiles();
for(File file : listOfFiles) {
dosomething(file);
}
for( String t : globalList)
{
System.out.println(t);
}
}
public static void dosomething(File file) {
try {
BufferedReader in = new BufferedReader(new FileReader(file));
String str;
while ((str = in.readLine()) != null) {
globalList.add(str);
}
in.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
在我的文件夹中,我有一些文件。每个文件都包含一行信息,所以我取出每一行并将这些行保存到我的 Arraylist globalList。现在我想将 ArrayList 中的一个对象与下一个对象进行比较,这可能吗?
就像: if (firstobj == nextobj) 删除它。
编辑
对不起各位,我忘记写点什么了......
问题是,我需要删除的行并不完全相同,因为它们以生成的数字开头,这个数字对那些文件很重要,所以我不能删除它......
所以我需要比较我的行的一部分,如果它相同我需要删除它。
一个例子:
10133;1;XXXX 110;4100;Autotour 4M100;30;0;K;0;;;0;2;3;XXXX
10134;1;XXXX 110;4100;Autotour 4M100;30;0;K;0;;;0;2;3;XXXX
10135;1;XXXX 110;4100;Autotour 4M100;15;0;K;0;;;0;2;3;XXXX
所以现在您看到前 2 行除了起始编号几乎相同,我需要找到这些行并删除它们。由于变化,我不能做像if(list.contains("10135;1;XXXX 110;4100;Autotour 4M100;15;0;K;0;;;0;2;3;XXXX") ) 这样的事情。
【问题讨论】:
-
当然这是可能的
globalList.get(0).equals(globalList.get(1))。但你真正想要实现什么? -
@MoritzPetersen 我需要在列表 100files 中读取(当我的程序完成时)。在其中一些文件中(不是全部)是我需要删除的行。
-
你想避免重复行吗?是这个吗?
-
您要删除仅生成的 id 不同的条目?
-
你如何定义“足够相似”?
标签: java file arraylist compare