2011-10-31 7 views
0
NSString * str = @"ABCDEFGHILMN"; 

NSDictionary *dictOdd = [[NSDictionary alloc] initWithObjectsAndKeys: 
          [NSNumber numberWithInt:0], @"A", 
          [NSNumber numberWithInt:1], @"B", 
          [NSNumber numberWithInt:2], @"C", 
          [NSNumber numberWithInt:3], @"D", 
          ............................... 
          nil]; 

NSDictionary *dictEven = [[NSDictionary alloc] initWithObjectsAndKeys: 
          [NSNumber numberWithInt:1], @"A", 
          [NSNumber numberWithInt:0], @"B", 
          [NSNumber numberWithInt:5], @"C", 
          [NSNumber numberWithInt:7], @"D", 
          ............................... 
          nil]; 

int sum = 0; 
for (int i=1; i < [str length]; i++){ 
    if(i % 2){ 
     sum += [dictPair objectForKey:str[i]]; 
    }else{ 
     sum += [dictEven objectForKey:str[i]]; 
    } 
} 

저장소 int numbers/letters에 대해 2 개의 사전을 만들었으므로 각 문자는 int 값을 갖습니다.NSDictionary 및 루프

나는 str 값과 관련하여 int 숫자의 합을 만들 것입니다. 그러나 objectForKey를 할당하는 방법을 모르겠습니다. str [i]];

답변

1

나는 당신이 당신을 떠날 것이다 characterAtIndex:을 찾고 생각

sum+=[[dictPair objectForKey:[NSString stringWithFormat:@"%C",[str characterAtIndex:i]]] intValue]; 
+2

는 :의'unichar에 반환합니다. – Chuck

+0

감사합니다. 나는 문자열에 대한 char 형식에서 조금 녹슬다. – utahwithak

0

당신은 NSString Class Reference

에 따라의 NSNumber 및 INT는 다르다는 것을 기억 같은 것을해야 당신은 추가하기 전에 변환해야합니다 그들. 기술적으로`characterAtIndex 때문에 '%의 C`, 내가 생각해야

NSString *str = ... 

NSDictionary *dictOdd = ... 
NSDictionary *dictOdd = ... 

int sum = 0; 
for (int i = 0; i < [str length]; i++) { 

    if(i % 2 == 0) 
     sum += [[dictPair objectForKey:[str characterAtIndex:i]] intValue]; 
    else 
     sum += [[dictEven objectForKey:[str characterAtIndex:i]] intValue]; 
}