替换Objective-C中字符串中的一个字符

Ran*_*rns 49 string objective-c nsstring ios

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

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

the*_*ent 88

如果它始终是相同的字符,您可以使用:

stringByReplacingOccurrencesOfString:withString:
Run Code Online (Sandbox Code Playgroud)

如果它是同一位置的相同字符串,您可以使用:

stringByReplacingOccurrencesOfString:withString:options:range:
Run Code Online (Sandbox Code Playgroud)

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

stringByReplacingCharactersInRange:withString:
Run Code Online (Sandbox Code Playgroud)

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

例如:

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

newText等于"船"

  • 感谢您添加代码示例.对于其他人谁可能会疑惑,在NSMakeRange"0"是字符的位置,"1"是在字符0长度开始,你要替换 - 所以要更换的第一个字符你做的(0,1)至替换你做的第三个字符(2,1)等等.谢谢!! (6认同)

Sal*_*lim 29

NSString *str = @"123*abc";
str = [str stringByReplacingOccurrencesOfString:@"*" withString:@""];
//str now 123abc
Run Code Online (Sandbox Code Playgroud)


Zak*_*ria 6

这是代码:

[aString stringByReplacingCharactersInRange:NSMakeRange(3,1) withString:@"B"];
Run Code Online (Sandbox Code Playgroud)

  • +0.5因为代码是王道,但这将取代错误的字母^^ (2认同)
  • 它现在做你想要的.;) (2认同)

Bou*_*rne 5

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