从字符串中删除前导 0,目标 C [英] remove leading 0 from a string, objective C

查看:50
本文介绍了从字符串中删除前导 0,目标 C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能的重复:
从字符串中删除前导零

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

I need to remove 0 from the beginning of a string and prevent leading 0s when user input the number, how can I do it?

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

For example: user input: 000090 display: 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];

此时remainder等于@"90".

等效地,可以替换线条

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

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

扫描所有零而不是扫描到第一个非零数字.

to scan past all the zeros rather than to scan until the first non-zero number.

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

One drawback of this approach is that if the original string is @"000000000", the resulting string will be empty.

这篇关于从字符串中删除前导 0,目标 C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆