【发布时间】:2011-12-17 21:55:38
【问题描述】:
我有一个NSMutableString @"hello"。我想将第二个位置的字符“e”替换为“a”,使其显示为@"hallo"。我该怎么做?
我已经尝试这个来实现移位密码,但它会抛出一个IndexOutBoundsException
- (NSString*)encode:(NSString*)original withShift:(int)shift {
NSMutableString* encoded = [NSMutableString stringWithString:original];
for (int i=0; i < [encoded length]; i++) {
char oriChar = [encoded characterAtIndex:i];
if (oriChar == ' ') {
continue;
}
char encChar = ((oriChar - LETTER_POS) + shift) % ALPHABET_LENGTH + LETTER_POS;
NSRange range = {i, i};
[encoded replaceCharactersInRange:range withString:[NSString stringWithUTF8String:&encChar]];
}
return encoded;
}
【问题讨论】:
标签: objective-c string cocoa nsstring