objective-c – 从Obj-C中的字符串中提取数字
发布时间:2020-12-16 10:53:24 所属栏目:百科 来源:网络整理
导读:参见英文答案 iphone sdk – Remove all characters except for numbers 0-9 from a string ????????????????????????????????????3个 我是Objective-C的新手,但在其他更高级的语言方面经验丰富.我想通过删除所有非数字字符来规范化字符串.换句话说,给定输入
参见英文答案 >
iphone sdk – Remove all characters except for numbers 0-9 from a string ????????????????????????????????????3个
我是Objective-C的新手,但在其他更高级的语言方面经验丰富.我想通过删除所有非数字字符来规范化字符串.换句话说,给定输入字符串“206-555-1212”,归一化结果应为“2065551212”.下面的代码片段有效,但鉴于我在其他语言中的经验看起来有点矫枉过正.有没有更好的方法呢? 编辑:输入字符串“(206)555-1212”,“206.555.1212”,“206 555 1212”等也应返回相同的标准化结果. NSString * normalize(NSString * number) { NSString *normalizedNumber = @""; NSString *tmpString = nil; NSRange searchRange; NSRange resultRange; searchRange.location = 0; searchRange.length = number.length; while (0 < searchRange.length) { resultRange = [number rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet] options:NSLiteralSearch range:searchRange]; tmpString = [number substringWithRange:resultRange]; normalizedNumber = [normalizedNumber stringByAppendingString:tmpString]; searchRange.location = resultRange.location + resultRange.length; searchRange.length = number.length - searchRange.location; } return normalizedNumber; } 解决方法
所有这些答案都没有解决问题的“删除所有非数字字符”部分.这是一个简单的方法:
NSString *normalize(NSString *number) { NSMutableCharacterSet *nonNumberCharacterSet = [NSMutableCharacterSet decimalDigitCharacterSet]; [nonNumberCharacterSet invert]; return [[number componentsSeparatedByCharactersInSet:nonNumberCharacterSet] componentsJoinedByString:@""]; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |