将 NSString 转换为 Int



我尝试将NSString转换为int,结果dpPoint:0,我想要dpPoint:2

dpPointStr = [NSString stringWithFormat:@"%@",[verifyRow valueForKey:@"default_point"]];
NSLog(@"dpPointStr:%@",dpPointStr); //Result dpPointStr:2
int dpPoint = [dpPointStr intValue];
NSLog(@"dpPoint:%i",dpPoint); //Result dpPoint:0

在您的情况下,如果值位于字符串的开头/结尾,您可以尝试以下操作:

int val = [[dpPointStr stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] intValue];
int str_len = [yourStr length]; char tmp[str_len];
[NSString getCString:tmp maxLength:str_len encoding:UTF8Encoding];
int dpPoint = atoi(tmp);

不要忘记包括以下内容:#include

我认为这应该可以正常工作。

另外,我认为您可以通过从以下位置获取intValue来解决此问题:

[verifyRow valueForKey:@"default_point"];

为了与Apple保持一致,请使用NSInteger代替,或者更好的是NSNumber作为valueForKey语句,然后使用NSInteger。

将 NSString 转换为整数

NSString *sampleText = @"5";
int numValue = [sampleText intValue];
NSLog(@"Integer Value: %d", numValue);

最新更新