2016-01-22 6 views
0

В моем коде Objective-C я хотел бы получить значение NSString, перебирать буквы, суммировать значения ASCII букв и возвращать их пользователю (предпочтительно также как и NSString).Как преобразовать NSString в NSInteger с суммой значений ASCII?

Я уже написал цикл, но я не знаю, как получить значение 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'instead'% @ '. – 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?.

Смежные вопросы