字符串中出现的字符目标C

问题描述:

如何计算字符串中字符的出现?字符串中出现的字符目标C

字符串:123-456-7890

我想找到的发生次数 “ - ” 在给定的字符串

+4

重复:http://*.com/questions/938095/nsstring-number-of-occurrences-of-a-character – hellslam

你可以简单地做这样的:

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

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

输出:

Counted times: 2

+0

它也是查找字符串中出现多少个SPACES的最佳代码。 。 。 –

+0

如果字符串以' - '开头会怎么样? – Oscar

+3

@Oscar它仍然有效,我只是测试它。你自己试过了吗? – CyberMew

int num = [[[myString mutableCopy] autorelease] replaceOccurrencesOfString:@"-" withString:@"X" options:NSLiteralSearch range:NSMakeRange(0, [myString length])]; 

replaceOccurrencesOfString:withString:options:range:方法返回已完成的替换次数,所以我们可以使用它来计算出多少次- s在你的字符串中。

+0

不导致内存泄漏,你不释放副本? – *foe

+0

@*foe你必须发布当然的副本,但它不在答案的范围内。 – 2012-05-14 13:34:02

+1

@ H2CO3由于您没有指向副本的指针,因此使用此代码也是不可能的。这是超出范围,是的,但许多新手可能会逐字复制这些代码,然后想知道他们为什么会泄漏内存。 – *foe

您可以使用NSString

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); 

这个工作replaceOccurrencesOfString:withString:options:range:方法。希望能帮助到你。快乐编码:)

这将做的工作,

int numberOfOccurences = [[theString componentsSeparatedByString:@"-"] count]; 

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

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);