-
判断不同文本文件中是否有相同的行?3
3,5,7,10,6, 23,2
4,7,45,2,1, 3,8,9
23,2 67,90
45,7,8, 与 3,5,7,10,6
23,6,90 23,89,90
上面是2个文本文件
请问分别读入一个或两个或者n个txt文件,全组合,分别判断每两个文件中是否有相同的行,如果有,则删去
?
谢谢
问题补充:
比方说就上面的那两个txt文件吧
除去包含的相同的行,最后输出
4,7,45,2,1, 3,8,9
45,7,8, 与 67,90
23,6,90 23,89,90
问题补充:
能有详细代码可以具体实现吗2009年1月06日 17:01
6个答案 按时间排序 按投票排序
-
将这些文本文件中的每一行读到map中,用key来区分不同的文件,map.put('f11',第一个文件中的第一行),map.put('f22',第二个文件中的第二行),然后对这个map做一些处理,删除值重复的key-value对,最后根据key读入不同的文件,其中有一个问题,如f11仍然存在,f12被删,这时f13应该是第一个文件中的第二行,所以往文件读数据的时候要稍微做一些处理,如先确定是f1,再按后面数字由小到大读入文件中。
2009年1月08日 10:55
-
按照bohemia (资深程序员)的做法, 我写了个程序:
a.txt内容为:
a
b
c
f
g
b.txt内容为:
a
e
b
d
c
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; /** * 两个文件a.txt和b.txt, 去掉相同的行, 即交集 * * @author zhanjia * */ public class TestSet { /** * @param args */ public static void main(String[] args) { String file1 = "D:/a.txt"; String file2 = "D:/b.txt"; Set set1 = new HashSet(); Set set11 = new HashSet(); Set set2 = new HashSet(); BufferedReader br1 = null; BufferedReader br2 = null; try { br1 = new BufferedReader(new InputStreamReader(new FileInputStream(file1))); br2 = new BufferedReader(new InputStreamReader(new FileInputStream(file2))); String line1 = null; String line2 = null; while ((line1 = br1.readLine()) != null) { set1.add(line1); set11.add(line1); } while ((line2 = br2.readLine()) != null) { set2.add(line2); } set11.retainAll(set2); System.out.println("交集: " + set11); set1.removeAll(set11); System.out.println("set1去掉交集: " + set1); set2.removeAll(set11); System.out.println("set2去掉交集: " + set2); } catch (Exception e) { try { br1.close(); br2.close(); } catch (Exception ce) { } } } }
结果为:
交集: [a, c, b]
set1去掉交集: [f, g]
set2去掉交集: [d, e]2009年1月07日 11:20
-
如果Java
类似的操作:
1.读取2个文件到2个独立的Set;
2.Set求交集;(找到公共出现的行);
3.Set求差集;(过滤重复行);
end.
回答的不错, 我们继续强化下这个问题, 把这个问题, 扩展到 100W个小文件。 哈哈。 想个算法。 我目前能想到的是排序竞赛树。复杂度是 O(nlgn + n), 排序是nlgn, n 是竞赛树的复杂度。2009年1月06日 21:35
-
如果是py:
file1; file2; s1 = set(file1.readlines()); s2 = set(file2.readlines()); print s1-(s1&s2);
如果Java
类似的操作:
1.读取2个文件到2个独立的Set;
2.Set求交集;(找到公共出现的行);
3.Set求差集;(过滤重复行);
end.
2009年1月06日 20:42
相关推荐
### 删除文本文件中重复行(vb.net) #### 知识点概述 本文将详细介绍如何使用VB.NET编程语言来实现从文本文件中删除重复行的功能。该功能主要涉及到以下几个关键概念和技术点: 1. **文件读取与写入**: VB.NET中...
本资源主要关注如何判断一个文本文件是否采用UTF-8编码。 在Windows系统中,比如Windows 7旗舰版,我们经常使用Notepad.exe(记事本)来查看和编辑文本文件。在编程环境中,有时候我们需要编写代码来检查文件的编码...
JAVA文本去重查重判断文件重复工具程序源代码 查重是指对文本、论文、作业等进行重复率检测,以防止学术不端和...指纹比对法:将文本转换成固定长度的指纹码,通过计算指纹码之间的相似度,来判断文本是否存在重复。
2. 遍历文本文件中的每个字符,使用函数 `_hke` 判断字符是否为英文字符。 3. 如果字符为英文字符,则将其加入到 `str` 中,并将 `word_number` 加 1。 4. 对于每个单词,使用函数 `_loHKE` 将其转换为小写字符,...
在判断文本文件的相似度时,我们可以使用String类的equals()方法来比较两个字符串是否相同。在本文的示例代码中,我们使用equals()方法来比较文件1和文件2的每一行数据,并将结果输出到结果文件中。 四、Java输出...
使用`StreamReader`类可以方便地读取文本文件的每一行。需要注意的是,这种方法假设文件编码相同,且比较时要考虑行结束符的差异。 在实际开发中,可能还需要处理异常,如文件不存在、读取权限不足等问题。为了提高...
本程序将按行读取所选择的文件(或者有换行符的),在读取完文件后,无论是否找到,都会创建和源文件相同类型的文件,即使是.exe或.rar(一般是打不开的),文件名存储为“output”+原文件名。即使没有找到任何相...
在IT行业中,文本比对是一项常见的任务,尤其在...对于日常办公中需要批量处理文本文件的情况,这样的工具无疑提高了工作效率。同时,了解这些Python模块的工作原理,也有助于深入理解文本处理和文件操作的相关知识。
文本重行过滤器的工作原理就是读取文本文件的每一行,然后通过某种比较机制(如哈希表或排序算法)来检测是否存在相同的行,并在输出时排除这些重复项。 在实际操作中,用户通常会遇到以下几种情况: 1. **全匹配**...
在判断文本是否只包含数字和字母时,可能需要用到`取文本字符类型`函数,该函数可以返回文本中每个字符的类型。 2. **循环结构**:为了遍历整个文本,易语言的`循环`或`直到`语句是必不可少的。通过循环,我们可以...
"批量文本文件中查找字符串"这个主题聚焦于如何在多个文本文件中高效地定位特定的字符串。下面将详细阐述这个过程涉及到的技术点和实现方法。 首先,我们需要了解“批量”处理的概念。批量处理意味着我们要对一组...
例如,在文件传输或备份过程中,通过对比目标文件和源文件的哈希值,可以快速判断文件在传输过程中是否出现错误或被篡改。 接着,我们转向色彩直方图,这是图像处理和计算机视觉领域中的一个基础概念。色彩直方图是...
4. 条件判断:在比较文本行时,我们需要使用条件判断语句(如`如果`和`否则`)来确定两行文本是否相等或满足特定条件。例如,`字符串比较`返回值为零表示两个字符串相等,非零则表示不等,这在比较过程中十分关键。 ...
对于文本文件,除了判断其内容是否完全一致之外,还经常需要找出两个文件中的相同项。这在处理大量数据时尤为有用,例如在数据分析、日志处理等领域。 #### 使用集合操作进行相同项筛选 Python 的集合(set)非常...
- 哈希算法:通过计算文件的哈希值(如MD5或SHA-1)来快速判断两个文件是否相同,哈希值相同的文件几乎可以认定为重复。 - 内容比较:对于部分哈希值不同但内容相似的文件,可以进行逐行或关键词比较来确定是否...
在二进制模式下,工具会逐字节对比两个文件的内容,以确定它们是否完全相同。这对于检查程序的编译结果、验证软件更新的完整性或查找硬盘上的损坏文件非常有用。例如,"beycomp.exe" 可能就是这样一个二进制文件比较...
在这个例子中,`searchForTextFiles()`方法实现了递归搜索,`isTextFile()`方法用于判断是否为文本文件。`main()`方法是程序的入口点,设置起始目录并打印出所有找到的文本文件的绝对路径。 在实际应用中,你可能...
在IT领域,日常工作中我们经常需要处理大量的文件,有时候为了管理和分析方便,我们需要将特定类型的文件名输出到文本文件中。这个操作可以帮助我们快速记录、查看或进一步处理这些文件。标题"打印当前文件夹下指定...
本文将详细介绍如何在MATLAB中读取不同类型文本文件的方法。 首先,我们来看一种通用的方法,即使用`fgetl`和`fgets`函数。这两个函数允许逐行读取文本文件。例如,函数`dataread`在描述中提到,它能读取指定行并将...
在源码中,开发者可能会结合这些基本命令,配合条件判断、循环等结构,实现更复杂的文本行比较逻辑,例如逐行读取文本文件,比较每行的内容,查找差异,或者进行排序等操作。 源码分析可能包括以下步骤: - 打开并...