如何查找特定字符在 NSString 中以大写形式出现的次数?
How to find number of occurrences of particular character are in uppercase in NSString?
有什么方法可以找到 NSString
中任何特定字符的大写出现,例如:
NSString *str=@"How many U's are in Uppercase";
我尝试的是全部大写字符,
int count=0;
for (i = 0; i < [str length]; i++) {
BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[str characterAtIndex:i]];
if (isUppercase == YES)
count++;
}
或
[[str componentsSeparatedByCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]] count] - 1;
但我需要在 NSString
中出现任何特定字符的大写字母。
如果您真的想使用 NSCharacterSet
,可以使用 characterSetWithCharactersInString
来构建自定义的。不过,与仅使用 ==
循环字符串相比,我不确定是否有任何优势。
你可以用正则表达式来做:
NSString *str = @"How many U's are in Uppercase";
NSString *pattern = @"U";
NSRegularExpression *expression = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *result = [expression matchesInString:str options:0 range:NSMakeRange(0, str.length)];
NSLog(@"%ld", result.count); // 2
有什么方法可以找到 NSString
中任何特定字符的大写出现,例如:
NSString *str=@"How many U's are in Uppercase";
我尝试的是全部大写字符,
int count=0;
for (i = 0; i < [str length]; i++) {
BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[str characterAtIndex:i]];
if (isUppercase == YES)
count++;
}
或
[[str componentsSeparatedByCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]] count] - 1;
但我需要在 NSString
中出现任何特定字符的大写字母。
如果您真的想使用 NSCharacterSet
,可以使用 characterSetWithCharactersInString
来构建自定义的。不过,与仅使用 ==
循环字符串相比,我不确定是否有任何优势。
你可以用正则表达式来做:
NSString *str = @"How many U's are in Uppercase";
NSString *pattern = @"U";
NSRegularExpression *expression = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *result = [expression matchesInString:str options:0 range:NSMakeRange(0, str.length)];
NSLog(@"%ld", result.count); // 2