iphone - 计算字符串中每次出现的括号,iOS SDK

标签 iphone ios objective-c sdk

我编写了一些代码来计算字符串中的每个括号,

有没有更简单的方法?

NSCharacterSet *parenthesis = [NSCharacterSet characterSetWithCharactersInString:@"()"];
parenthesis = [parenthesis invertedSet];
NSArray *arr = [someString componentsSeparatedByCharactersInSet:parenthesis];
NSInteger count = 0;
for(int i=0;i<[arr count];i++)  {
    if([[arr objectAtIndex:i] isEqualToString:@")"])
        count++;
}
NSLog(@"count is %d", count);

最佳答案

由于您仍然需要遍历字符串中的所有字符,所以为什么不简单

NSUInteger count = 0;
for (NSInteger i = someString.length - 1 ; i >= 0 ; i--) {
    unichar ch = [someString characterAtIndex:i];
    count += (ch == '(' || ch == ')');
}

这使用较少的类,更易于阅读,并且使用较少的CPU来执行计算。

关于iphone - 计算字符串中每次出现的括号,iOS SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716757/

相关文章:

ios - 如何共享 View Controller 的 View 布局

ios - 从自定义 uitableview 单元格获取 uitextfield 数据 - Swift

ios - Swift 全文搜索推荐解决方案

ios - 是否可以绕过推文对话框并直接发布到推特?

ios - json数据到文档目录中的plist文件,swift 2.0

objective-c - 在 Swift 子类中更改 Objective C 方法的实现

ios - 如何检测两个UIView的边框是否接触?

iphone - UINavigationcontroller 的背景图片

iphone - 使用 Facebook SDK 和 Windows Azure SDK 时的 xcode 链接问题

iphone - 如何改变UINavigationBar的标签位置(frame)?