请考虑以下示例:
" Hello this is a long string! "
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
"Hello this is a long string!"
Run Code Online (Sandbox Code Playgroud) 我是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;
}
Run Code Online (Sandbox Code Playgroud) @"this string contains blank spaces".
我们如何将此字符串转换为@"thisstringcontainsblankspaces".
我的意思是我们如何修剪字符串中的所有空格和新的线条字符.我已经尝试NSCharecterSet过使用了whitespaceCharacterSet.但这只删除了字符串末尾的空格而不是之间....
有任何想法吗??