猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
从NSString中删除所有数字
从NSString中删除所有数字
我有一个带有一些括号和连字符的NSString(电话号码),因为某些电话号码已格式化。如何从字符串中删除除数字之外的所有字符?
饮歌长啸
浏览 744
回答 3
3回答
明月笑刀无情
老问题,但怎么样: NSString *newString = [[origString componentsSeparatedByCharactersInSet: [[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""];它会爆炸非数字集上的源字符串,然后使用空字符串分隔符重新组合它们。不如通过字符选择那么高效,但在代码中更紧凑。
0
0
0
撒科打诨
没有必要使用正则表达式库,因为其他答案建议 - 你所追求的类被调用NSScanner。它的用法如下:NSString *originalString = @"(123) 123123 abc";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); // "123123123"编辑:我已经更新了代码,因为原件是我的头顶写的,我认为这足以指出人们正确的方向。似乎人们在代码之后可以直接复制粘贴到他们的应用程序中。我也同意Michael Pelz-Sherman的解决方案比使用更合适NSScanner,所以你可能想看一下。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
iOS
Swift
iOS为什么要获取webview内容高度?
1 回答
关于Swift Playgrounds 编程问题?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续