IOS:containsObject检查字符串

我有像Array的数组:Array = P123,P234,P543,P678

并且我有P12300这样的字符串(这可以是数组中相同的字符串,也可以不带零)。

我正在使用containsObject

if(Array containsObject: P123)    ==> TRUE
if(Array containsObject: P23400)  ==> FALSE
if(Array containsObject: P1230)    ==> FALSE

有没有更好的方法来比较字符串,以便上面的所有情况都是正确的?

目前我正在使用containsObject,并且我没有得到想要的结果,因为条件只对完全相同的字符串为真。

请让我知道好方法..


目标c

你可以使用NSPredicate

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self BEGINSWITH[c] %@", @"P123"];
NSArray *filterArray = [yourArray filteredArrayUsingPredicate: predicate];
if (filterArray.count > 0) {
    print("Contains")
}
else {
    print("Not")
}

迅速

是的 ,你可以这样检查,你需要简单地使用contains(where:)

if yourArray.contains(where: { $0.hasPrefix("P123") }) {
    print("Contains")
}
else {
    print("Not")
}

编辑:如果你想忽略尾随零,你可以截断尾随零,然后再与数组进行比较。

NSString *str = @"P12300";
NSRange range = [str rangeOfString:@"0*$" options:NSRegularExpressionSearch];
str = [str stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"%@", str); //P123
//Now use this str to check its inside the array or not
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self BEGINSWITH[c] %@", str];

你可能想要使用[string1 isEqualToString:string2]

在这种情况下,只有在字符串相等的情况下才会评估为真。

你也可以使用containString方法。 你可能会发现这个链接有用。


NSPredicate很好,另一种方法是使用containsString:方法

//assumes all objects in the array are NSStrings
- (NSArray *)array:(NSArray *)array containsSubstring:(NSString *)substring {
    NSMutableArray *newArray = [[NSMutableArray alloc] init];
    for (NSString *string in array) {
        if([string containsString:substring]) {
            [newArray addObject:string];
        }
    }
    return newArray;
}

现在你可以这样称呼它

NSArray *stringArray = @[@"P12300", @"P23400", @"P5430", @"P678"];
NSArray *subArray = [self array:stringArray containsSubstring:@"P23"];
NSLog(@"%@", subArray);

Swift 3:

在Swift中使用过滤器非常简单

let array: [String] = ["P12300", "P23400", "P5430", "P678"]
let newArray = array.filter {
    $0.contains("P123")
}
print(newArray)
链接地址: http://www.djcxy.com/p/74011.html

上一篇: IOS : containsObject Check for String

下一篇: NSString built in method to compare number of similar characters