首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSString的值是iOS中的NSInteger值吗?

NSString的值是iOS中的NSInteger值吗?
EN

Stack Overflow用户
提问于 2014-10-30 10:16:18
回答 2查看 193关注 0票数 0

我感兴趣的是确定NSString中的文本是否为int值。

例如:

代码语言:javascript
复制
NSString value = @"something";
int i = value.intValue;
// i -> 0

所以我是0,如果文本是实int值,它就不会给我任何信息。

第二个问题是,如果字符串类似于int:

代码语言:javascript
复制
NSString vaue = @"10.10.21.32"
int i = value.intValue;
// i -> 10

如何确定文本是否为实int值?

马尔科

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-30 11:06:02

使用NSNumberFormatterlenient设置为false,allowsFloats设置为false。

代码语言:javascript
复制
NSNumberFormatter *intFormat = [NSNumberFormatter alloc] init];
intFormat.lenient = false;
intFormat.allowsFloats = false;
NSNumber *myNumber = [intFormat numberFromString:value];
int finalValue;
if (myNumber) { // was able to parse OK
    finalValue = [myNumber intValue];
} else {
    // handle invalid strings here
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-30 10:56:32

我做了一些代码。它将用来识别字符串是文本,真值或int。

代码语言:javascript
复制
#define REGEX_NUMBER @"^[0-9.0-9]*$"

NSString *digitString = @"test";

NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", REGEX_NUMBER];

BOOL isNumber = [phoneTest evaluateWithObject:digitString];

if (isNumber) {

    // String contains digit characters

    if ([digitString rangeOfString:@"."].location == NSNotFound) {

        // String contains real value
        int value = [digitString intValue];

    } else {

        // String contains int value
        double value = [digitString doubleValue];

    }
} else {
    NSLog(@"alpha-numeric value");
    // String contains alpha-numeric values.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26650326

复制
相关文章

相似问题

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