我有一个字符串,如“00Welcome”,“0000To”,“0STACKOVERFLOW”,“NOW”。
给定一个NSString,如何从前缀中删除零。
我最初认为使用CharacterAIndex,但看起来不是一个好主意。
我刚刚浏览了以下链接:
Most efficient way to iterate over all the chars in an NSString
答案 0 :(得分:3)
如果零是罕见的:
while ([myString hasPrefix:@"0"])
myString = [myString subStringFromIndex:1];
答案 1 :(得分:3)
这将使用stringByTrimmingCharactersInSet:
NSCharacterSet *charsToTrim = [NSCharacterSet characterSetWithCharactersInString:@"0"];
NSString *input = @"00Welcome";
NSString *output = [input stringByTrimmingCharactersInSet:charsToTrim];
使用正则表达式:
NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:@"^0+"];
NSString *input = @"00Welcome";
NSString *output = [re stringByReplacingMatchesInString:input
options:0
range:NSMakeRange(0, [input length])
withTemplate:@""];
答案 2 :(得分:3)
NSString *str =@"000034234247236000049327428900000";
NSRange range = [str rangeOfString:@"^0*" options:NSRegularExpressionSearch];
str= [str stringByReplacingCharactersInRange:range withString:@""];
尝试使用@dreamlax
给出的正则表达式