Objective c 从字符串中删除前导0,目标C
可能重复:Objective c 从字符串中删除前导0,目标C,objective-c,nsstring,Objective C,Nsstring,可能重复: 当用户输入数字时,我需要从字符串的开头删除0并防止前导0,我该怎么做 例如: 用户输入:000090 显示器:90 谢谢 一种方法是使用NSScanner: NSString *string = @"000090"; NSCharacterSet *nonzeroNumberCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"]; NSScanner *scanner = [NS
当用户输入数字时,我需要从字符串的开头删除0并防止前导0,我该怎么做 例如: 用户输入:000090 显示器:90
谢谢 一种方法是使用
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];
此时,余数
等于@“90”
同样地,我们可以替换这些线路
NSCharacterSet *nonzeroNumberCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"];
NSScanner *scanner = [NSScanner scannerWithString:string];
与
扫描所有零,而不是扫描到第一个非零数字
这种方法的一个缺点是,如果原始字符串是
@“000000000”
,则生成的字符串将为空。一种方法是使用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];
此时,余数
等于@“90”
同样地,我们可以替换这些线路
NSCharacterSet *nonzeroNumberCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"];
NSScanner *scanner = [NSScanner scannerWithString:string];
与
扫描所有零,而不是扫描到第一个非零数字
这种方法的一个缺点是,如果原始字符串是@“000000000”
,则生成的字符串将为空