C#比较相似的字符串

标签 c# string compare similarity

我有一个带有一些文件名的泛型 (LIST1) 和另一个带有完整名称列表 (LIST2) 的大泛型。 我需要将 LIST1 中的名称与 LIST2 中的相似名称进行匹配。例如

LIST1
- **MAIZE_SLIP_QUANTITY_3_9.1.aif**

LIST 2
1- TUTORIAL_FAILURE_CLINCH_4.1.aif
2- **MAIZE_SLIP_QUANTITY_3_5.1.aif**
3- **MAIZE_SLIP_QUANTITY_3_9.2.aif**
4- TUTORIAL_FAILURE_CLINCH_5.1.aif
5- TUTORIAL_FAILURE_CLINCH_6.1.aif
6- TUTORIAL_FAILURE_CLINCH_7.1.aif
7- TUTORIAL_FAILURE_CLINCH_8.1.aif
8- TUTORIAL_FAILURE_CLINCH_9.1.aif
9- TUTORIAL_FAILURE_PUSH_4.1.aif

我读过 Levenshtein distance并在框架 (SignumFramework Utilities) 中使用了它的实现。 它在第 2 行和第 3 行返回 distance=1。但在我的例子中,第 3 行比第 2 行更匹配。

是否有其他更好的方法来比较相似的字符串?更灵活的东西?

最佳答案

当作为字符串进行比较时,“9.2”对于“9.1”的匹配并不比“5.1”更好。如果要以数字方式评估版本号,则必须解析字符串,以便可以分别比较字符串部分和数字部分。

关于C#比较相似的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/747169/

相关文章:

java - 为什么在 string.xml 中添加字符串不会出现在 R.java 中?

android - 将 EditText 值转换为 double /整数并在 Android 中执行数学函数时遇到问题

java - 手动执行 isEmpty、拆分、包含和替换

c# - LINQ Where和FirstOrDefault

c# - 有项目时,SelectionChanged 中的 Items.Count = 0

c++ - 为新结构重载 operator()

arrays - 比较 2 个数组并列出差异 - Swift

java - 比较日历对象

c# - ListViewItem 的组未通过另一个集合保留

C# 使用外键填充嵌套类