1

如果我有这个:

int toSplit = 208;

拆分它的最佳方法是什么,所以我得到:

2
0
8
4

4 回答 4

3

方法是这样的

- (NSMutableArray *) toCharArray : (NSString *) str
{

    NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[str length]];
    for (int i=0; i < [str length]; i++)
    {
        NSString *ichar  = [NSString stringWithFormat:@"%c", [str characterAtIndex:i]];
        [characters addObject:ichar];
    }

    return characters;
}
于 2012-10-24T09:02:53.257 回答
2
do {
  int digit = toSplit % 10;
  toSplit /= 10;

  printf(@"%i", digit);

} while (toSplit > 0);

我希望这不是家庭作业。

编辑:它是倒退的,所以它不是一个有效的答案......但是,把它留在这里,因为它仍然对其他人有用。

于 2012-10-24T09:00:34.653 回答
0

把它整理成一个字符串,然后把它拉开。所以像这样:

int toSplit = 208;

NSString *string = [NSString stringWithFormat: @"%i", toSplit];

NSMutableString *splitApartString = [[NSMutableString alloc] init];

for (int i = 0; i < [string length]; i++) {

    NSString *substring = [string substringFromIndex: i];  

    [splitApartString appendFormat: @"%@\n", substring];  
}

NSLog(@"%@", splitApartString); //YAY!

所以它的作用是将这个 int 放入一个字符串中,将其拆分,然后遍历每个字符并从该字符中获取一个字符串。然后它将该子字符串附加到一个新字符串。

另一种选择是获取字符并使用运算符而不是获取子字符串%c。此外,如果您查看此代码,您将看到以下输出:

> 2

> 0

> 8

> // extra space here

您可以只添加一个条件来检查i字符串长度是否为 - 1 而不添加空格,或者您可以只删除最后一个字符!

于 2012-10-24T09:03:11.040 回答
0

我不熟悉 Objective-C 语法,但类似:

void split(int toSplit)
{ 
    if (!toSplit)
    {
        return;
    }
    split(toSplit / 10);
    int digit = toSplit % 10;
    printf(@"%i", digit);
}
于 2012-10-24T09:24:59.777 回答