13

如何计算字符串中某个字符的出现次数?

例子

字符串:123-456-7890

我想在给定的字符串中找到“-”的出现次数

4

7 回答 7

36

你可以简单地这样做:

NSString *string = @"123-456-7890";
int times = [[string componentsSeparatedByString:@"-"] count]-1;

NSLog(@"Counted times: %i", times);

输出:

Counted times: 2

于 2012-05-14T13:35:02.137 回答
2

这将完成工作,

int numberOfOccurences = [[theString componentsSeparatedByString:@"-"] count];
于 2012-05-14T13:35:30.487 回答
2

我为你做了这个。试试这个。

unichar findC;
int count = 0;
NSString *strr = @"123-456-7890";

for (int i = 0; i<strr.length; i++) {
    findC = [strr characterAtIndex:i];
    if (findC == '-'){
        count++;
    }
}

NSLog(@"%d",count);
于 2012-05-14T13:45:09.610 回答
1
int num = [[[myString mutableCopy] autorelease] replaceOccurrencesOfString:@"-" withString:@"X" options:NSLiteralSearch range:NSMakeRange(0, [myString length])];

replaceOccurrencesOfString:withString:options:range:方法返回进行的替换次数,因此我们可以使用它来计算字符串中有多少-s。

于 2012-05-14T13:30:46.480 回答
1
int total = 0;
NSString *str = @"123-456-7890";
for(int i=0; i<[str length];i++)
{
    unichar c = [str characterAtIndex:i];
    if (![[NSCharacterSet alphanumericCharacterSet] characterIsMember:c])
    {
        NSLog(@"%c",c);
        total++;
    }
}
NSLog(@"%d",total);

这行得通。希望能帮助到你。快乐编码:)

于 2012-05-14T13:33:54.763 回答
0

您可以使用replaceOccurrencesOfString:withString:options:range:以下方法NSString

于 2012-05-14T13:33:07.850 回答
0

如果字符串以您正在检查的字符开头或结尾,则当前选择的答案将失败。

改用这个:

int numberOfOccurances = (int)yourString.length - (int)[yourString stringByReplacingOccurrencesOfString:@"-" withString:@""].length;
于 2018-07-30T04:07:54.790 回答