首页 > 解决方案 > 比较两个文本时如何找到不相似的行

问题描述

我有一个列表,其中包含不同文本的元素,例如:

第一个元素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

我想要的是将每个元素与前一个元素进行比较并检测任何差异。在上述情况下,我想比较txt1txt2返回以下行,因为它们是不同的:

Master process
Strategy of genetic search

但是当比较txt2和时txt3,根本没有区别。

我怎样才能做到这一点?

标签: java

解决方案


免责声明:不想给你特定的代码,因为当前的问题显示没有尝试解决这个问题。

我会试试这个:

  1. 从列表中读取元素的内容并转换为单个字符串。
  2. 用换行符分隔字符串内容String.split("\\r?\\n")。本质上,您希望在每个元素中都有一个句子列表。如果需要,您还可以修剪每个句子的空格:String.split("\\s*\\r?\\n\\s*").
  3. 比较两个列表并检索差异。有很多方法可以做到这一点,例如:在两个列表之间迭代并记录差异,或使用ArrayList.removeAll()(即,您从另一个列表中删除一个列表的所有内容并查看更改)。祝你好运!

推荐阅读