如何在NSString中查找特定字符的出现次数是大写的?

Posted

技术标签:

【中文标题】如何在NSString中查找特定字符的出现次数是大写的?【英文标题】:How to find number of occurrences of particular character are in uppercase in NSString? 【发布时间】:2016-08-29 13:08:10 【问题描述】:

有什么方法可以在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 中出现任何特定字符的大写字母。

【问题讨论】:

你是指字符串中的大写位置还是总的大写计数? 你对你给出的例子有什么期望? 3(大写字母的个数)还是2(大写U的个数)? 总数,比如大写字母中有多少个“U”@TejaNandamuri 计数应该是:2 @Paulw11 因此,正如 Phillip Mills 建议的那样,只需遍历字符串,将每个字符与目标字符进行比较,并在找到时增加计数。 【参考方案1】:

你可以用正则表达式来做到这一点:

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

【讨论】:

它只会给出大写的 U 计数,还是将小写的 u 也包含在计数中?@vadian 它只会给你大写计数,因为模式@“U”是大写的。 @RonakChaniyara @RonakChaniyara 只有大写字母。但是你可以提供一个 caseinsensitive 选项来获取两者【参考方案2】:

如果您真的想使用NSCharacterSet,可以使用characterSetWithCharactersInString 来构建自定义的。不过,我不确定与仅使用 == 循环遍历字符串相比有什么优势。

【讨论】:

如果你能提供基本代码sn-p或者logic@Phillip Mills就太好了

以上是关于如何在NSString中查找特定字符的出现次数是大写的?的主要内容,如果未能解决你的问题,请参考以下文章

查找并打印出字符串中特定字符的出现次数 (shell/AIX)

Excel如何统计某单元格内特定字符串出现的次数

16.查找特定字符出现的次数

Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24

如何在mongodb聚合中查找搜索字符串的出现次数?

如何在字符串vb.net中查找子字符串的出现次数