gpt4 book ai didi

c# - 将用户输入与从 csv 文件读取的字符串进行比较,并根据相似字符的数量决定输出字符串

转载 作者:行者123 更新时间:2023-11-30 20:49:40 26 4
gpt4 key购买 nike

下面的代码将用户输入与 csv 文件中的美国城市名称进行比较。该文件是逗号分隔,带有一个带标题的单列。如果用户输入匹配文件中的行或字符串,则返回文件中的字符串,如果不匹配,则返回用户输入。

除了根据完全匹配返回数据,如何根据匹配的字符数返回文件或用户输入的数据?

示例:

用户输入: Brookly文件中的字符串: Brooklyn 输出:Brooklyn

在上面的例子中,只有一个字符不同。所以我可以说如果总字符差异为 1,则从文件返回字符串,否则返回用户输入。

代码中的 RemoveAllFormat 方法只是去除所有格式,以便比较两个字符串。

代码:

public string MatchedCity(string input)
{
string cityMatch = null;
string[] cityList = null;
const string lookupFile = @"X:\city.csv";

using (StreamReader r = new StreamReader(lookupFile))
{
string refList = "";
while ((refList = r.ReadLine()) != null)
{
cityList = refList.Split(',');

foreach (string city in cityList)
{
if (String.Equals(RemoveAllFormat(input), RemoveAllFormat(city)))
{
cityMatch = city;
break;
}
else
{
continue;
}
}

if (string.IsNullOrEmpty(cityMatch) == false)
break;
else
continue;
}
}

if (string.IsNullOrEmpty(cityMatch) == true)
{
return input;
}
else
{
return cityMatch.Replace("\"", "");
}
}

最佳答案

您可以使用有人贴出的代码计算 Levenshtein 距离 here .看起来还有另一个实现 here ,在更明显的许可下。

然后您可以决定您愿意为“足够近”容忍多少距离,并输出距离足够小以满足您的口味的行。

关于c# - 将用户输入与从 csv 文件读取的字符串进行比较,并根据相似字符的数量决定输出字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com