【发布时间】:2025-12-13 15:25:06
【问题描述】:
我有一组格式正确的电话号码:
string[] phoneNumbers = {"US +1 866 XXX XXXX",
"UK +44 (0)XXX XXX XXXX",
"Singapore +65 XXXX XXXX"
};
我作为输入获得的电话号码对应于列表中的这些项目之一,但它的格式略有不同。输入可以是这 3 种之一。请注意,不包括开头的国家/地区名称。
- (866) XXX-XXXX
- +44 (0) XXX XXXXXX
- +65 XXXXXXXX
如您所见,我的输入与数组的格式略有不同。
我的问题是,当我有一个格式不同的输入时,有什么好方法可以从数组中提取正确格式的数字版本。
我不是要求别人为我做这件事,因为我可以很好地编写代码。出于某种原因,这种逻辑现在让我很着迷。
我想做的是一个并行电话号码数组,其中包含所有格式不正确的输入,并获取该数组中项目的索引并获取正确数组的相应输入。这看起来合乎逻辑吗?有没有更好更快的方法?
编辑:
目前我正在完成这项工作:
for(int i=0; i<phoneNumbers.Count(); i++)
{
var tempDialInNumber = (from t in input //input from the user
where char.IsDigit(t)
select t).ToArray();
string tDialInNumber = new string(tempDialInNumber);
var tempDigitPhoneNumber = (from t in phoneNumbers.GetValue(i).ToString()
where char.IsDigit(t)
select t).ToArray();
string tDigitPhoneNumber = new string(tempDigitPhoneNumber);
if (tDigitPhoneNumber.Contains(tDialInNumber))
{
dialInNumber = phoneNumbers.GetValue(i).ToString();
}
}
【问题讨论】:
标签: string algorithm fuzzy-search