【问题标题】:Replace character in string替换字符串中的字符
【发布时间】: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


【解决方案1】:
NSRange r = {1,1}; //String indexing is 0-based
[s replaceCharactersInRange: r withString:@"a"]

另外,一定要学会使用在线参考。

【讨论】:

  • 或者使用AppKiDo作为参考,它是免费的并且使用Apple文档。
【解决方案2】:

您可以使用stringByReplacingOccurrencesOfString:withString:NSString

【讨论】:

  • 我明白了。我可以只替换指定索引处的字符吗?
  • 改用'stringByReplacingOccurrencesOfString:withString:options:range:'。
猜你喜欢
  • 2020-03-08
  • 2011-07-02
  • 2012-04-26
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多