【问题标题】:Replacing one character in a string in Objective-C在Objective-C中替换字符串中的一个字符
【发布时间】:2011-07-10 13:41:23
【问题描述】:

希望有人可以帮助我 - 我想替换字符串中的某个字符,并且想知道最好的方法是什么?

我知道字符的位置,例如,如果我想将字符串中的第三个字符从 A 更改为 B - 我将如何编码?

【问题讨论】:

标签: objective-c ios string nsstring


【解决方案1】:

如果它总是相同的字符,你可以使用:

stringByReplacingOccurrencesOfString:withString:

如果是同一个位置的同一个字符串可以使用:

stringByReplacingOccurrencesOfString:withString:options:range:

如果只是您可以使用的特定位置:

stringByReplacingCharactersInRange:withString:

这里的文档: https://developer.apple.com/documentation/foundation/nsstring

例如:

NSString *someText = @"Goat";
NSRange range = NSMakeRange(0,1);
NSString *newText = [someText stringByReplacingCharactersInRange:range withString:@"B"];

newText 等于 "Boat"

【讨论】:

  • 感谢您添加代码示例。对于其他可能想知道的人,NSMakeRange 中的“0”是字符的位置,“1”是您希望替换的从字符 0 开始的长度 - 因此要将您所做的第一个字符 (0,1) 替换为替换您所做的第三个字符 (2,1) 等等。谢谢!!
【解决方案2】:

NSMutableString 对象上使用replaceCharactersInRange: withString: 消息。

【讨论】:

    【解决方案3】:

    代码如下:

    [aString stringByReplacingCharactersInRange:NSMakeRange(3,1) withString:@"B"];
    

    【讨论】:

    • +0.5 因为代码为王,但这将替换错误的字母^^
    • @fluchtpunkt:谢谢。但这只是一个例子。
    • 它现在可以满足您的需求。 ;)
    【解决方案4】:
    NSString *str = @"123*abc";
    str = [str stringByReplacingOccurrencesOfString:@"*" withString:@""];
    //str now 123abc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2023-03-08
      相关资源
      最近更新 更多