Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在objective-c中将字符串部分与NSArray值匹配_Objective C_Cocoa_Search_Nsstring_Nsarray - Fatal编程技术网

如何在objective-c中将字符串部分与NSArray值匹配

如何在objective-c中将字符串部分与NSArray值匹配,objective-c,cocoa,search,nsstring,nsarray,Objective C,Cocoa,Search,Nsstring,Nsarray,我有以下数组和搜索字符串 NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil]; NSString *search = @"startcba"; 我想在数组元素中搜索字符串的结束部分。我期望的搜索结果是@“cba”。请让我知道如何在数组中查找欲望值以进行搜索 谢谢,您可以使用NSPredicate获取满足您需求的元素 NSPredicate * predicate = [NSPredicate

我有以下数组和搜索字符串

NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil];

NSString *search = @"startcba";
我想在数组元素中搜索字符串的结束部分。我期望的搜索结果是@“cba”。请让我知道如何在数组中查找欲望值以进行搜索


谢谢,

您可以使用
NSPredicate
获取满足您需求的元素

NSPredicate * predicate = [NSPredicate predicateWithFormat:@" %@ ENDSWITH SELF ", search];
NSArray * searchResults = [values filteredArrayUsingPredicate:predicate];

这条路很好

以下是一种使用rangeOfString的方法:

NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil];

NSString *search = @"startcba";
NSUInteger searchLength = [search length];
NSString *result = nil;

for (NSString *val in values)
{
    NSUInteger valLength = [val length];
    NSRange expectedRange = NSMakeRange(searchLength - valLength, valLength);
    NSRange rng = [search rangeOfString:val];

    if ( rng.location == expectedRange.location && rng.length == expectedRange.length )
    {
        result = val;
        break;
    }
}

总是最后三个字符?如果是这样,请获取子字符串并发送
[myArray indexOfObject:myString]
。抱歉,它可以是任意长度,例如:NSArray*values=[NSArray arrayWithObjects:@“abc”、@“xyz”、@“cba”、@“yzx”、@“Abcd”、nil];NSString*search=@“startabcd”;您可以在谓词中为大小写和变音不敏感指定
c
d
。因此,谓词格式看起来像这样
@“%@ENDSWITH[cd]SELF”
感谢Deepak和EmptyStack提供了简单而准确的解决方案。感谢您的rangeOfString方法与Deepak的方法一样好,它还可以让我在同一个循环中找到项的索引。对不起,我必须接受迪帕克的回答,因为这正是我所需要的。我感谢你的宝贵帮助。