Yanıtlar:
Yöntemi kullanabilirsiniz
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
... alt dize değiştirilmiş yeni bir dize almak için ( NSStringDiğerleri için belgelere bakın )
Örnek kullanım
NSString *str = @"This is a string";
str = [str stringByReplacingOccurrencesOfString:@"string"
withString:@"duck"];
strsüreçte değişen adres
NSStringnesneler değiştirilemez (değiştirilemezler), ancak değiştirilebilir bir alt sınıf vardır NSMutableString, bu da size bir dize içindeki karakterleri değiştirmek için çeşitli yöntemler sunar. Muhtemelen en iyi seçeneğinizdir.
Birden fazla dize değiştirme istiyorsanız:
NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo
Ayrıca stringByReplacingCharactersInRange: withString:
for (int i = 0; i < card.length - 4; i++) {
if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) {
NSRange range = NSMakeRange(i, 1);
card = [card stringByReplacingCharactersInRange:range withString:@"*"];
}
} //out: **** **** **** 1234
Sorun iOS'taki eski sürümlerde var. en sonda, sağdan sola iyi çalışır. Yaptığım şey şudur:
ilk önce iOS sürümünü kontrol ediyorum:
if (![self compareCurVersionTo:4 minor:3 point:0])
daha:
// set RTL on the start on each line (except the first)
myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n"
withString:@"\u202B\n"];
NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];
strsadece aklımı havaya uçurdu.