java - 比较两个文本时如何找到不相似的行
问题描述
我有一个列表,其中包含不同文本的元素,例如:
第一个元素txt1
是以下文本:
Analysis of coverage
Better algorithm
Strategy of random search
第二个元素txt2
是以下文本:
Analysis of coverage
Better algorithm
Master process
Strategy of genetic search
第三个元素txt3
是以下文本:
Analysis of coverage
Better algorithm
Master process
Strategy of genetic search
我想要的是将每个元素与前一个元素进行比较并检测任何差异。在上述情况下,我想比较txt1
并txt2
返回以下行,因为它们是不同的:
Master process
Strategy of genetic search
但是当比较txt2
和时txt3
,根本没有区别。
我怎样才能做到这一点?
解决方案
免责声明:不想给你特定的代码,因为当前的问题显示没有尝试解决这个问题。
我会试试这个:
- 从列表中读取元素的内容并转换为单个字符串。
- 用换行符分隔字符串内容
String.split("\\r?\\n")
。本质上,您希望在每个元素中都有一个句子列表。如果需要,您还可以修剪每个句子的空格:String.split("\\s*\\r?\\n\\s*")
. - 比较两个列表并检索差异。有很多方法可以做到这一点,例如:在两个列表之间迭代并记录差异,或使用
ArrayList.removeAll()
(即,您从另一个列表中删除一个列表的所有内容并查看更改)。祝你好运!
推荐阅读
- javascript - 如何通过表单更改检测切换
- excel - 找出日期的差距
- javascript - webkit.messageHandlers 用于 React 将 JavaScript 注入 Swift
- python - 指定 dtype 时,Python pandas read_csv 出现错误数据问题
- odata - 带有 $expand 的 OData 不起作用
- twitter-bootstrap-3 - 格式化引导日期选择器的日期
- gulp-watch - Gulp4 watch 对变化没有反应
- stomp - Websockets 连接在 Pivotal Cloud 上失败,但在 localhost 上有效
- linux - 如何在 linux 中重建热备 postgresql 数据库
- html - 如何用 HTML ASCII 码显示字符串?