0

例如我有字符串数组:

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

在文本字段中,我输入文本:@“de”。此@“演示”中的最佳匹配。我有这样的方法:

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

但它返回@“demo_123”字符串..你能帮我吗?我的案例字符串必须是@“demo”。谢谢。

4

2 回答 2

2

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

于 2013-04-17T16:46:38.973 回答
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;
    }
}

我这样做。首先,您对数组进行排序并找到匹配项。

于 2013-04-17T16:33:42.710 回答