【问题标题】:How do I find the most similar string from list如何从列表中找到最相似的字符串
【发布时间】:2023-01-13 01:30:59
【问题描述】:

我有一个随机格式的字符串列表:

AppName-ver-1.1.0-data.exe
AppName-ver-1.1.1-secondData.exe
AppName-ver-1.2.0-data.exe
AppName-ver-1.2.1-data.exe
AppName-ver-1.2.3-data.exe
AnotherAppName-ver-1.0.0-data.exe
AnotherAppName-ver-1.0.0-secondData.exe

在java中找到最接近字符串的值的有效方法是什么:

AppName-ver-1.2.4-data.exe

UPD:最接近 - 通过命名而不是长度,所以 AppName-ver-1.2.3-data.exe 是预期的结果

【问题讨论】:

  • 那么最接近的字符串是什么AppName-ver-1.2.4-data.exe从你的名单?为什么?所有这些背景都应该提到!
  • 我认为最困难的部分是回答“最近是什么意思”。一旦你有了这个答案,剩下的代码就很简单了。
  • 按名字。不应计算长度(应为 AppName-ver-1.2.3-data.exe)

标签: java list design-patterns


【解决方案1】:

强调评论者已经指出的内容:

如果将“最接近”定义为字符串长度,则 AppName-ver-1.2.4-data.exe 的值为 26,并且

AppName-ver-1.1.0-data.exe
AppName-ver-1.2.0-data.exe
AppName-ver-1.2.1-data.exe
AppName-ver-1.2.3-data.exe

都类似于 26,因此它们是直接匹配。

您还可以将“最接近”定义为具有最少的Hamming Distance。这将给出完全不同的结果,AppName-ver-1.2.0-data.exe 可能会获胜,因为它只差一点点。

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多