我需要一种算法,可以比较两个文本文件并突出显示它们的差异(甚至更好!)可以以有意义的方式计算它们的差异(比如两个相似的文件应该具有高于两个不同文件的相似性得分,单词"相似"以正常术语定义).它听起来很容易实现,但事实并非如此.
实现可以在c#或python中.
谢谢.
是否有任何Java库可以接受两个字符串,并根据*nix diff命令返回带格式化输出的字符串?
例如,进食
test 1,2,3,4
test 5,6,7,8
test 9,10,11,12
test 13,14,15,16
Run Code Online (Sandbox Code Playgroud)
和
test 1,2,3,4
test 5,6,7,8
test 9,10,11,12,13
test 13,14,15,16
Run Code Online (Sandbox Code Playgroud)
作为输入,它会给你
test 1,2,3,4 test 1,2,3,4
test 5,6,7,8 test 5,6,7,8
test 9,10,11,12 | test 9,10,11,12,13
test 13,14,15,16 test 13,14,15,16
Run Code Online (Sandbox Code Playgroud)
与我传递文件完全相同 diff -y expected actual
我发现了这个问题,它为一般库提供了一些很好的建议,为你提供程序化输出,但我想要直接的字符串结果.
我可以diff
直接调用系统调用,但这个特定的应用程序将在unix和windows上运行,我不能确定环境实际上是否diff
可用.
我需要匹配两个几乎相同的长自由文本字符串; 即,尽可能找到索引到索引的对应关系.
因为这是自由文本,所以比较不应该像代码差异一样基于行.
有关Java库的任何建议吗?
一个简单的例子(在现实生活中,当然,不会有额外的空格来排列,并且可能会有更复杂的挑战,比如整个条款的移动.)
The quick brown fox jumped over the lazy dog.
|||||||||| ||||||||||||||||||||| |||||
The quick yellow fox jumped over the well-bred dog.
Run Code Online (Sandbox Code Playgroud) 我正在寻找Java中的diff实现.我已经看到Python有自己的SequenceMatcher(带有difflib),这正是我需要的...在Java中.
有什么搬运工具吗?或者是否有其他类/库在Java中执行相同的操作?
如果没有,我在哪里可以找到该difflib的源代码(如果在语音中是免费的)来在Java中自己实现SequenceMatcher?
不幸的是,Apache Commons Lang对我帮助不大.
谢谢!
是否存在一个库甚至是标准API调用,它允许我区分两个字符串并将diff字符数作为一个int?我不介意其他功能,只要我能获得更多程序化的差异结果(例如int)而不是只输出整个人类可读差异的东西.
我正在寻找Java中的通用实用程序,它可以帮助我为两个对象(相同类型)创建差异报告.
例如,如果我的类结构是:
class A {
int p1;
string p2;
B b1;
}
class B {
float p3;
}
Run Code Online (Sandbox Code Playgroud)
我想要一个报告b/w两个类型A的对象(比如a1和a2),如下所示:a1 vs. a2
p1 : 'remove'
p2 : 'change'
b1.p3: 'add'
Run Code Online (Sandbox Code Playgroud)
其中,如果属性在第二个对象中为null,则设置'remove',如果属性存在但是具有不同的值则为'change',如果第一个对象中的属性为null,则为'add'.
对于收集对象来说,它可能变得更加棘手/棘手......
我正在寻找一个简单的java lib/src来突出显示两个字符串之间的区别,区分大小写.一个html输出会很棒,但我很乐意得到差异的索引,如:
diff("abcd","aacd")
> [2,2]
diff("maniac", "brainiac")
> ["man",brain"] or [0,3] or something like that
Run Code Online (Sandbox Code Playgroud)
由于输入符合严格的约定,因此想法是在摆动程序中突出错别字或类似错误.