我感兴趣的是确定NSString中的文本是否为int值。
例如:
NSString value = @"something";
int i = value.intValue;
// i -> 0所以我是0,如果文本是实int值,它就不会给我任何信息。
第二个问题是,如果字符串类似于int:
NSString vaue = @"10.10.21.32"
int i = value.intValue;
// i -> 10如何确定文本是否为实int值?
马尔科
发布于 2014-10-30 11:06:02
使用NSNumberFormatter,lenient设置为false,allowsFloats设置为false。
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
}发布于 2014-10-30 10:56:32
我做了一些代码。它将用来识别字符串是文本,真值或int。
#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.
}https://stackoverflow.com/questions/26650326
复制相似问题