Objective-C将“00120”之类的字符串转换为整数数组

时间:2012-03-06 12:35:02

标签: objective-c ios

我需要将像'00120'这样的字符串转换为NSIntegers的NSArray。

你可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:6)

尝试使用此代码:

NSString *input = @"00120";
NSMutableArray *integers = [NSMutableArray array];

for (int i = 0; i < input.length; i++) {
    unichar c = [input characterAtIndex:i];

    if (!isnumber(c))
        [integers addObject:[NSNumber numberWithInt:-1]];
    else 
        [integers addObject:[NSNumber numberWithInt:c - '0']]; // convert the ASCII value to it's integer counterpart.
}

当然,这是假设您的所有字符都是字符串中的数字。

编辑:如果你想要一个NSInteger,你需要制作一个C-Array:

NSString *input = @"00120";
NSInteger *integers = calloc(input.length, sizeof(NSInteger));
NSInteger integersLen = input.length;

for (int i = 0; i < input.length; i++)
{
    unichar c = [input characterAtIndex:i];

    if (!isnumber(c))
        integers[i] = -1;
    else
        integers[i] = c - '0'; // convert the ASCII value to it's integer counterpart
}

答案 1 :(得分:1)

您需要知道的所有内容都可以在NSStringNSMutableArray的课程参考中找到。如果您不熟悉它们,请查看for循环的教程。

您可能想要使用的值得注意的方法是NSString上的-length-characterAtIndex:,以及NSMutableArray上的-addObject: / -insertObject:atIndex:

我不是故意要光顾,但我不打算在这里为你写出代码,因为如果你自己在一些帮助下解决问题,你会学到更多。如果您遇到困难并请求更具体的帮助,请随时使用您的代码更新问题。