我有一个字符串。它总是3个字母长,它可以指望只包含三个整数。说它看起来像这样:
NSString * numberString = @"123";
现在,我想从中提取这些数字。在任何其他语言中,我只需获取每个位置的角色并解析它,甚至投射它。
但是,Objective-C似乎没有。我找到了一些其他的答案,建议我使用characterAtIndex
方法,在其上使用numberWithChar
,然后从中减去数字“48”,甚至让我自己也不知道它的明显愚蠢
没有其他更优雅的方法吗?
我尝试使用substringWithRange,但显然没有创建NSRange的方法,并且由于某种原因它与CFRangeMake不兼容。
答案 0 :(得分:7)
[[numberString substringWithRange:NSMakeRange(0,1)] intValue]怎么样?
答案 1 :(得分:1)
int n=[@"123" intValue];
通过此,您可以获得n / 100,n / 10和n%10的个别数字。
答案 2 :(得分:0)
这个怎么样?
NSString * numberString = @"123";
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *number = [formatter numberFromString:numberString];
int n = [number intValue];
(完成转换后不要忘记发布格式化程序。)
答案 3 :(得分:0)
NSString *numberString = @"123";
int firstDigit = [numberString characterAtIndex:0] - '0';
int secondDigit = [numberString characterAtIndex:1] - '0';
int thirdDigit = [numberString characterAtIndex:2] - '0';
NSLog(@"Your digits are %d, %d, %d", firstDigit, secondDigit, thirdDigit);
如果你想作弊:
char *numberString = [@"123" cStringUsingEncoding:NSASCIIStringEncoding];
printf(@"Your digits are %d, %d, %d\n", numberString[0] - '0',
numberString[1] - '0',
numberString[2] - '0');