如何使用ASCII值的总和将NSString转换为NSInteger?

时间:2016-01-22 10:43:11

标签: ios objective-c ascii

在我的Objective-C代码中,我想获取一个NSString值,遍历字母,将字母的ASCII值相加并将其返回给用户(最好也作为NSString)。

我已经编写了一个循环,但我不知道如何获取单个字符的ASCII值。我错过了什么?

- (NSString*) getAsciiSum: (NSString*) input {                                                      
    NSInteger sum = 0;                                                                      
    for (NSInteger index=0; index<input.length; index++) {                                  
        sum = sum + (NSInteger)[input characterAtIndex:index];                          
    }                                                                                       
    return [NSString stringWithFormat: @"%@", sum];                                         
}

注意:我已经看到了与获取ASCII值相关的类似问题,但所有这些问题最终都将值显示为字符串。我仍然不知道如何将ASCII值作为NSInteger。

2 个答案:

答案 0 :(得分:0)

这应该有用。

- (NSInteger)getAsciiSum:(NSString *)stringToSum {
    int asciiSum = 0;
    for (int i = 0; i < stringToSum.length; i++) {
        NSString *character = [stringToSum substringWithRange:NSMakeRange(i, 1)];
        int asciiValue = [character characterAtIndex:0];
        asciiSum = asciiSum + asciiValue;
    }
    return asciiSum;
}

感谢How to convert a NSString to NSInteger with the sum of ASCII values?提供参考。

答案 1 :(得分:0)

以下是答案:

- (NSString *) getAsciiSum: (NSString *) input
{
    NSString *input = @"hi";
    int sum = 0;
    for (NSInteger index = 0; index < input.length; index++)
    {
        char c = [input characterAtIndex:index];

        sum = sum + c;
    }

    return [NSString stringWithFormat: @"%d", sum]);
}

这对我有用。

希望这有帮助!