gpt4 book ai didi

java - 迭代 2 个文件以删除任何公共(public)字符串行并分离出唯一字符串

转载 作者:行者123 更新时间:2023-11-30 03:16:28 25 4
gpt4 key购买 nike

public static void main(String[] args) throws IOException {



FileReader a = new FileReader(new File("C:\\Users\\IBM_ADMIN\\Desktop\\SAM_PUBLIC_MONTHLY_20150802\\a.txt")); // new file

FileReader b = new FileReader(new File("C:\\Users\\IBM_ADMIN\\Desktop\\SAM_PUBLIC_MONTHLY_20150802\\b.txt")); // new file

@SuppressWarnings("resource")
BufferedReader file1 =new BufferedReader(a); //new

@SuppressWarnings("resource")
BufferedReader file2 =new BufferedReader(b); //old
PrintWriter Uniquefile = new PrintWriter (new File("C:\\Users\\IBM_ADMIN\\Desktop\\SAM_PUBLIC_MONTHLY_20150802\\samnew.dat"));

List<String> list= new ArrayList<String>();
while(file1.readLine()!=null)
{
String str=file1.toString();
list.add(str);
while(file2.readLine()!=null)
{
String str1=file2.toString();
if(list.contains(str1))
{
list.remove(str);
}
}
}

Iterator<String> it=list.iterator();
while(it.hasNext())
{
String str2=it.toString();
Uniquefile.write(str2);
}
}

我正在迭代 2 个文件以删除任何常见的字符串行并分离出唯一的字符串。

例如:文件 1 .txt 有字符串行“1 2 3”,文件 2.txt 有“2 3”,我想在文件 3.txt 中打印“1”。

希望我的问题很清楚。如果有人可以纠正我的代码(如下所示),那就太好了。谢谢

最佳答案

如果我理解正确的话,您想从两个文件中获取所有不同的行。我建议使用Set Collection

展示其工作原理的是代码片段:

Set<String> set1 = new HashSet<String>();
Set<String> set2 = new HashSet<String>();

String line=null;

while((line=file1.readLine())!=null){
set1.add(line);
}

while((line=file2.readLine())!=null){
set2.add(line);
}


//get similars
Set<String> similars=new HashSet<String>(set1);

similars.retainAll(set2);

set1.removeAll(similars);
set2.removeAll(similars);

//all distinct lines
Set<String> distinctSet=new HashSet<String>(set1);
disctinctSet.addAll(set2);

关于java - 迭代 2 个文件以删除任何公共(public)字符串行并分离出唯一字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32440902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com