Ответы:
Вы можете использовать -hasPrefix:
метод 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))
}
hasPrefix работает особенно хорошо. например, если вы искали URL-адрес http в a NSString
, вы бы использовали componentsSeparatedByString
для создания NSArray
и итерирования массива, hasPrefix
чтобы найти элементы, начинающиеся с http.
NSArray *allStringsArray =
[myStringThatHasHttpUrls componentsSeparatedByString:@" "]
for (id myArrayElement in allStringsArray) {
NSString *theString = [myArrayElement description];
if ([theString hasPrefix:@"http"]) {
NSLog(@"The URL is %@", [myArrayElement description]);
}
}
hasPrefix
возвращает логическое значение, которое указывает, соответствует ли данная строка начальным символам получателя.
- (BOOL)hasPrefix:(NSString *)aString,
Параметр aString
- это строка, которую вы ищете. Возвращаемое значение - YES, если aString соответствует начальным символам получателя, иначе NO. Возвращает НЕТ, если aString
пусто.
Использование characterAtIndex:
. Если первый символ - звездочка, используйте substringFromIndex:
для получения строки sans '*'.
Еще один подход к этому ..
Пусть это поможет кому-то ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
В качестве более общего ответа попробуйте использовать метод hasPrefix. Например, приведенный ниже код проверяет, начинается ли строка с 10, то есть кода ошибки, используемого для выявления определенной проблемы.
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
Это может помочь? :)
Просто найдите символ по индексу 0 и сравните его со значением, которое вы ищете!
Этот небольшой кусочек кода я нашел случайно, и мне еще предстоит увидеть его в стеке. Это работает, только если символы, которые вы хотите удалить или изменить, существуют, что удобно во многих сценариях. Если символ (ы) не существует, это не изменит вашу строку NSString:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
Вот как я это использую:
//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);
В этой строке очень легко выполнить три действия в одном:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
вас проверить несколько значений, хранящихся вNSArray
? Например:NSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
?