是否存在一个库,甚至是标准的API调用,允许我对两个字符串进行比较,并将diff字符的数量作为int来获取?我不介意其他功能,只要能获得更多的程序化差异结果(比如int)而不是只输出整个人类可读的差异的东西。Java:将比较计数返回为int的字符串比较库?
回答
我想你想要的是Leveshtein distance - 这告诉你需要多少次更改(插入,删除或替换)才能将一个字符串转换为另一个字符串。
例如,abcde
和abcdef
之间的差值为1,因为你在abcde
最后的位置让abcdef
后插入f
。
abcde
和abcdf
之间的差异也为1,因为你的第一个字符串与f
取代e
获得第二。
abcde
和abde
之间的差异为1,因为您在第一个字符串中删除c
以获得第二个字符串。
旧的问题,但链接似乎被打破。 – 2013-04-26 04:47:43
想看看链接的另一端是什么! – Troyseph 2015-02-13 15:15:02
我不知道任何标准的API调用,但你可以看到第三方库的引用,这个问题(并不奇怪 - 谷歌,Apache的百科全书......)
How to perform string Diffs in Java?
How to perform string Diffs in Java?
啊,我看到一个StringUtils.difference(str1,str2).length()和StringUtils.difference(str2,str1).length()应该工作得很好。谢谢。 – Zombies 2010-04-15 17:11:44
- 1. DataTable.Select字符串/ int比较
- 2. Mysql字符串 - Int比较
- 3. PHP字符串 - INT比较
- 4. 比较字符串 - Java的
- 5. 的java字符串比较
- 6. 比较INT串
- 7. 比较int和返回1
- 8. 统计字符串比较
- 9. 比较比较Int
- 10. Java比较字符串
- 11. Java字符串比较
- 12. 字符串比较Java
- 13. 比较Java字符串用==
- 14. Java字符串比较
- 15. 比较int数字
- 16. 字符串比较,返回最相似
- 17. 字符串比较总是返回false
- 18. 比较等于字符串返回False?
- 19. 等于字符串比较返回false
- 20. 字符串比较不正确返回?
- 21. BASH字符串比较返回True
- 22. 为什么整数比较比字符串比较快?
- 23. Java:如何将字符串与toString()的返回进行比较
- 24. 字符串比较为相同字符串返回false
- 25. 字符串比较没有比较
- 26. Java - 比较数字字符串
- 27. 数字比较比字符串比较更快吗?
- 28. 比较gchar为字符串
- 29. Java:字符比较
- 30. 比较字符串
嗯,你会如何决定是否字符不同?例如如果两个字符串的长度不同,那么较长字符串的字符会被计为不同的字符还是相同?人物的秩序是否重要? – Tarski 2010-04-15 16:01:09
以及将“史蒂夫汽车”与“史蒂夫汽车”进行比较的情况。那会是1个不同的字符(只是“'''”)还是6个不同的字符(整个“汽车”)?我认为有几种不同的方式来指定这个问题。 – Kip 2010-04-15 16:03:43
你需要不同字符的确切数量吗? compareTo按照字典顺序做类似的事情,并返回一个int。 – Searles 2010-04-15 16:09:27