Yanıtlar:
Şu -hasPrefix:
yöntemi kullanabilirsiniz NSString
:
Objective-C:
NSString* output = nil;
if([string hasPrefix:@"*"]) {
output = [string substringFromIndex:1];
}
Swift:
var output:String?
if string.hasPrefix("*") {
output = string.substringFromIndex(string.startIndex.advancedBy(1))
}
Kullanabilirsiniz:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
hasPrefix özellikle iyi çalışıyor. örneğin bir bir http url aradığını eğer NSString
istersek componentsSeparatedByString
bir yaratmak NSArray
ve tekrarlayın kullanarak dizi hasPrefix
http ile başlayan elemanları bulmak için.
NSArray *allStringsArray =
[myStringThatHasHttpUrls componentsSeparatedByString:@" "]
for (id myArrayElement in allStringsArray) {
NSString *theString = [myArrayElement description];
if ([theString hasPrefix:@"http"]) {
NSLog(@"The URL is %@", [myArrayElement description]);
}
}
hasPrefix
belirli bir dizenin alıcının başlangıç karakterleriyle eşleşip eşleşmediğini gösteren bir Boolean değeri döndürür.
- (BOOL)hasPrefix:(NSString *)aString,
parametre aString
Eğer Dönüş Değeri aradığınız aksi HAYIR, aString alıcısının başlayan karakterleri eşleşirse EVET olduğu bir dizedir. Boşsa NO değerini döndürür aString
.
Kullanın characterAtIndex:
. İlk karakter bir yıldız işaretiyse, substringFromIndex:
sans '*' dizesini almak için kullanın .
Bunu yapmak için başka bir yaklaşım ..
Birine yardımcı olsun ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
Daha genel bir cevap olarak hasPrefix yöntemini kullanmayı deneyin. Örneğin, aşağıdaki kod, bir dizenin 10 ile başlayıp başlamadığını kontrol eder; bu, belirli bir sorunu tanımlamak için kullanılan hata kodudur.
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
Bu yardımcı olabilir mi? :)
Sadece 0 dizinindeki karakteri arayın ve aradığınız değerle karşılaştırın!
Bu güzel küçük kod şans eseri buldum ve henüz Stack üzerinde önerilen görmek için var. Yalnızca kaldırmak veya değiştirmek istediğiniz karakterler varsa çalışır, bu da birçok senaryoda uygundur. Karakterler yoksa, NSString'inizi değiştirmez:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
Ben nasıl kullanacağım:
//declare what to look for
NSString * suffixTorRemove = @"</p>";
NSString * prefixToRemove = @"<p>";
NSString * randomCharacter = @"</strong>";
NSString * moreRandom = @"<strong>";
NSString * makeAndSign = @"&amp;";
//I AM INSERTING A VALUE FROM A DATABASE AND HAVE ASSIGNED IT TO returnStr
returnStr = [returnStr stringByReplacingOccurrencesOfString:suffixTorRemove withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:prefixToRemove withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:randomCharacter withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:moreRandom withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:makeAndSign withString:@"&"];
//check the output
NSLog(@"returnStr IS NOW: %@", returnStr);
Bu bir satır, üç eylemi bir arada gerçekleştirmek için çok kolaydır:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
birNSArray
. Örneğin:NSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
?