【问题标题】:Extract an NSString using NSScanner使用 NSScanner 提取 NSString
【发布时间】:2011-04-06 11:16:13
【问题描述】:

我正在从 AllContacts 获取数据;在该数据中,我得到了联系方式,例如 (998) 989-8989。使用此号码,我无法拨打电话。有人可以帮忙吗?提前致谢。

【问题讨论】:

    标签: iphone nsstring contacts nsscanner


    【解决方案1】:

    大家好

    最后我用下面的代码解决了这个问题

    NSString *originalString = @"(998) 989-8989";
    NSMutableString *strippedString = [NSMutableString 
                                       stringWithCapacity:originalString.length];
    
    NSScanner *scanner = [NSScanner scannerWithString:originalString];
    NSCharacterSet *numbers = [NSCharacterSet 
                               characterSetWithCharactersInString:@"0123456789"];
    
    while ([scanner isAtEnd] == NO) {
        NSString *buffer;
        if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
            [strippedString appendString:buffer];
    
        } else {
            [scanner setScanLocation:([scanner scanLocation] + 1)];
        }
    }
    
    NSLog(@"%@", strippedString);
    

    谢谢大家

    【讨论】:

      【解决方案2】:

      听起来你可以删除空格、括号和连字符。

      NSString *phoneNumber = @"(998) 989-8989";
      phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"-" withString:@""];
      phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"(" withString:@""];
      phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@")" withString:@""];
      phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@" " withString:@""];
      phoneNumber = [@"tel://" stringByAppendingString:phoneNumber];
      [[UIApplication sharedApplication] openURL:phoneNumber];
      

      【讨论】:

      • 谢谢老兄,但是在不同的国家,他们拨打电话号码的格式会有所不同。这样会再次造成问题:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多