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