繁体   English   中英

在Objective C中拆分整数的最佳方法

[英]Best way to split integers in Objective C

如果我有这个:

int toSplit = 208;

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

2
0
8

方法会像这样

- (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;
}
do {
  int digit = toSplit % 10;
  toSplit /= 10;

  printf(@"%i", digit);

} while (toSplit > 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,而不添加空格,或者可以删除最后一个字符!

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

void split(int toSplit)
{ 
    if (!toSplit)
    {
        return;
    }
    split(toSplit / 10);
    int digit = toSplit % 10;
    printf(@"%i", digit);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM