2016-01-22 60 views
0

在我的Objective-C代码中,我希望获取NSString值,遍历字母,对字母的ASCII值进行求和并将其返回给用户(最好也是NSString)。如何使用ASCII值的总和将NSString转换为NSInteger?

我已经写了一个循环,但我不知道如何获取单个字符的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。

+0

什么说错误? – Larme

+2

无法重现问题,工作得很好。唯一的是格式可能应该是'%ld'而不是'%@'。 – luk2302

+1

@ luk2302是正确的。只需更改代码:[NSString stringWithFormat:@“%ld”,(long)sum]; –

回答

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]); 
} 

这是为我工作。

希望这有助于!

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?的参考。

相关问题