iOS - 如何检查一个字符串是否为数字?

11

可能重复:
iPhone如何检查字符串是否仅为数字

我正在尝试查找Objective C中的一些基本功能,但似乎无法找到基本的答案。

我真正需要的是检查:

if ( some_string is numeric )
{

}

我认为应该有一些内置函数可以完成这个任务。不是吗?

我正在查看这个StackOverflow问题如何检查NSString是否为数字,他们似乎在以非常复杂的方式处理事情。

难道我不能用一行简单的代码进行基本检查吗?

谢谢!


2
定义“数字”!只允许数字吗?负号?小数点?科学计数法?不同的语言环境?还有什么... - Nikolai Ruhe
@NikolaiRuhe 是的,整数就像4536。 - GeekedOut
1个回答

39

有没有一行简单的基本检查可以做呢?

没有。

NSScanner *scanner = [NSScanner scannerWithString:testString];
BOOL isNumeric = [scanner scanInteger:NULL] && [scanner isAtEnd];
如果您想允许使用小数,请通过 scanDouble: 替换 scanInteger:

这个会像NSDateFormatter一样有性能惩罚吗? - agarcian
@agarcian 不,NSScanner非常轻量级。 - Nikolai Ruhe
这个是否也允许负数?例如:-23.2351 - Supertecnoboff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接