如何检查字符串的内容是否为数值? [英] How to check if contents of a string are numeric values?

查看:62
本文介绍了如何检查字符串的内容是否为数值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看过这个问题但它已经2岁了.是否有更好\更简单\更新的方法来检查字符串是否具有数值.例如 1 或 1.54 或 -1 或 -1.54 等

I have seen this question but it is 2 years old. Is there a better\easier\newer way to check if string has numeric values. e.g 1 or 1.54 or -1 or -1.54 etc etc.

推荐答案

bool status;
NSScanner *scanner;
NSString *testString;
double result;

scanner = [NSScanner scannerWithString:testString];
status = [scanner scanDouble:&result];
status = status && scanner.scanLocation == string.length;

如果 status == YES 那么字符串是全数字的.

If status == YES then the string is fully numeric.

或者正如@Dave 指出的那样SO答案:

Or as @Dave points out from this SO answer:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
number = [formatter numberFromString:string];
status = number != nil;

(我没有泄漏,我正在使用 ARC :-))

(I'm not leaking, I'm using ARC :-))

这篇关于如何检查字符串的内容是否为数值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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