【问题标题】:remove leading 0 from a string, objective C [duplicate]从字符串中删除前导 0,目标 C [重复]
【发布时间】:2012-11-07 14:20:29
【问题描述】:

可能重复:
Removing leading zeroes from a string

当用户输入数字时,我需要从字符串的开头删除 0 并防止前导 0,我该怎么做?

例如: 用户输入:000090 显示:90

谢谢!

【问题讨论】:

    标签: objective-c nsstring


    【解决方案1】:

    一种方法是使用NSScanner

    NSString *string = @"000090";
    NSCharacterSet *nonzeroNumberCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"];
    NSScanner *scanner = [NSScanner scannerWithString:string];
    [scanner scanUpToCharactersFromSet:nonzeroNumberCharacterSet intoString:nil];
    NSString *remainder = nil;
    NSCharacterSet *emptyCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@""];
    [scanner scanUpToCharactersFromSet:emptyCharacterSet intoString:&remainder];
    

    此时remainder 等于@"90"

    等效地,可以替换行

    NSCharacterSet *nonzeroNumberCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"];
    NSScanner *scanner = [NSScanner scannerWithString:string];
    

    NSCharacterSet *zeroNumberCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"0"];
    [scanner scanCharactersFromSet:zeroNumberCharacterSet intoString:nil];
    

    扫描过去所有的零,而不是扫描到第一个非零数字。

    这种方法的一个缺点是,如果原始字符串为@"000000000",则结果字符串将为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 2014-04-12
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多