如何从NSString中删除前缀零

时间:2014-08-07 11:13:30

标签: ios objective-c

我有一个字符串,如“00Welcome”,“0000To”,“0STACKOVERFLOW”,“NOW”。

给定一个NSString,如何从前缀中删除零。

我最初认为使用CharacterAIndex,但看起来不是一个好主意。

我刚刚浏览了以下链接:

Most efficient way to iterate over all the chars in an NSString

3 个答案:

答案 0 :(得分:3)

如果零是罕见的:

while ([myString hasPrefix:@"0"])
    myString = [myString subStringFromIndex:1];

答案 1 :(得分:3)

这将使用stringByTrimmingCharactersInSet:

从开始和结束中删除所有0
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

给出的正则表达式