将NSInteger连接到NSInteger

时间:2016-03-29 14:31:30

标签: ios objective-c

我正在制作自己的计算器而且我来到这个问题。
抱歉新手问题,但我没找到。
如何在Objective-C中将NSInteger附加到另一个NSInteger;
例如:
5 + 5 = 55
6 + 4 + 3 = 643

2 个答案:

答案 0 :(得分:3)

您必须将它们转换为字符串。这是一种方式:

NSNumber *i1 = @6;
NSNumber *i2 = @4;
NSNumber *i3 = @3;

NSMutableString *str = [NSMutableString new];
[str appendString:[i1 stringValue]];
[str appendString:[i2 stringValue]];
[str appendString:[i3 stringValue]];

NSLog(@"result='%@", str);

然而,说了这么多,我不清楚为什么你要连接。

答案 1 :(得分:2)

如果它们是一个数字(如在计算器中),您只需执行以下操作:

NSInteger newNumber = (oldNumber * 10) + newDigit;

或方法:

- (NSInteger)number:(NSInteger)currentNumber byAdding:(NSInteger)newDigit {
    //Assumes 0 <= newDigit <= 9
    return (currentNumber * 10) + newDigit;
}

如果它们有多个数字,你可以将它们组成字符串,连接它们并转换回整数或使用简单的算术来找出你必须乘以的10的幂。

编辑: 6 + 4 + 3假设一次提供一位数字:

NSInteger result = [self number:[self number:6 byAdding:4] byAdding:3];

纯粹的算术解决方案:

- (NSInteger)powerOfTenForNumber:(NSInteger)number {
    NSInteger result = 1;
    while (number > 0) {
        result *= 10;
        number /= 10;
    }
    return result;
}


- (NSInteger)number:(NSInteger)currentNumber byAdding:(NSInteger) newNumber {
    return (currentNumber * [self powerOfTenForNumber:newNumber]) + newNumber;
}