首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >判断字符串是否为数字

判断字符串是否为数字
EN

Stack Overflow用户
提问于 2011-05-23 07:04:57
回答 14查看 63.8K关注 0票数 93

我们如何检查一个字符串是否只由数字组成。我正在从字符串中取出一个子字符串,并希望检查它是否是数值子字符串。

代码语言:javascript
复制
NSString *newString = [myString substringWithRange:NSMakeRange(2,3)];
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-05-23 07:13:59

这里有一种不依赖于尝试将字符串解析为数字的有限精度的方法:

代码语言:javascript
复制
NSCharacterSet* notDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if ([newString rangeOfCharacterFromSet:notDigits].location == NSNotFound)
{
    // newString consists only of the digits 0 through 9
}

参见+[NSCharacterSet decimalDigitCharacterSet]-[NSString rangeOfCharacterFromSet:]

票数 244
EN

Stack Overflow用户

发布于 2011-05-23 07:10:12

我建议使用NSNumberFormatter类中的numberFromString:方法,如果数字无效,它将返回nil;否则,它将返回NSNumber。

代码语言:javascript
复制
NSNumberFormatter *nf = [[[NSNumberFormatter alloc] init] autorelease];
BOOL isDecimal = [nf numberFromString:newString] != nil;
票数 34
EN

Stack Overflow用户

发布于 2011-05-23 07:08:01

您可以创建一个NSScanner并简单地扫描字符串:

代码语言:javascript
复制
NSDecimal decimalValue;
NSScanner *sc = [NSScanner scannerWithString:newString];
[sc scanDecimal:&decimalValue];
BOOL isDecimal = [sc isAtEnd];

查看NSScanner's documentation,了解更多可供选择的方法。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6091414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档