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

时间:2013-04-17 16:17:52

标签: ios algorithm nsstring nsmutablearray 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”。感谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这实际上取决于你想如何匹配。

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;
    }
}
我是这样做的。首先,您对数组进行排序,然后找到匹配。