UITextField在数组中找到最佳匹配字符串



例如,我有一个字符串数组:

@"demo_1"
@"123"
@"demo_some_text"
@"demo"
@"demo_123"
@"simple_111"

在textfield中我输入文本:@"de"。最好的匹配在这个@"演示"。我有这样的方法:

NSString *substring = @"de";
    for(NSString *demo in arrayWithStrings)
                {
                    NSRange substringRange = [demo rangeOfString:substring];
                    if (substringRange.location == 0)
                    {
                        foundString = demo;
                    }
                }

但是它返回@"demo_123"字符串..你能帮我一下吗?我的大小写字符串必须是@"demo"。谢谢。

我知道两个github项目自动完成文本字段。我不知道他们的匹配标准是什么,但他们可能会提供一些灵感:https://github.com/hoteltonight/HTAutocompleteTextField和https://github.com/doat/DOAutocompleteTextField。

这取决于你想如何匹配。

NSArray *array = [NSArray arrayWithObjects:@"demo_1",@"123",@"demo_some_text",@"demo",@"demo_123", @"simple_111", nil];
NSArray *sorted = [array sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSString *substring = @"de";
for(NSString *demo in sorted)
{
    NSRange substringRange = [demo rangeOfString:substring];
    if (substringRange.location == 0)
    {
        NSLog(@"%@", demo);
        break;
    }
}

我这样做。首先对数组进行排序并查找匹配。

最新更新