Respostas:
Você pode usar o -hasPrefix:
método de NSString
:
Objetivo-C:
NSString* output = nil;
if([string hasPrefix:@"*"]) {
output = [string substringFromIndex:1];
}
Rápido:
var output:String?
if string.hasPrefix("*") {
output = string.substringFromIndex(string.startIndex.advancedBy(1))
}
Você pode usar:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
O hasPrefix funciona especialmente bem. por exemplo, se você estivesse procurando um URL http em a NSString
, usaria componentsSeparatedByString
para criar um NSArray
e iterar a matriz usando hasPrefix
para encontrar os elementos que começam com 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
retorna um valor booleano que indica se uma determinada sequência corresponde aos caracteres iniciais do receptor.
- (BOOL)hasPrefix:(NSString *)aString,
parâmetro aString
é uma sequência que você está procurando Valor de retorno é SIM se aString corresponder aos caracteres iniciais do receptor, caso contrário NÃO. Retorna NO se aString
estiver vazio.
Use characterAtIndex:
. Se o primeiro caractere for um asterisco, use substringFromIndex:
para obter a sequência sans '*'.
Outra abordagem para fazê-lo ..
Que ajude alguém ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
Como resposta mais geral, tente usar o método hasPrefix. Por exemplo, o código abaixo verifica se uma sequência começa com 10, que é o código de erro usado para identificar um determinado problema.
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
Isso pode ajudar? :)
Basta procurar o personagem no índice 0 e compará-lo com o valor que você está procurando!
Este pequeno pedaço de código que encontrei por acaso e ainda o tenho visto sugerido no Stack. Só funciona se os caracteres que você deseja remover ou alterar existirem, o que é conveniente em muitos cenários. Se o (s) caractere (s) não existir, ele não alterará seu NSString:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
É assim que eu uso:
//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);
Essa linha é super fácil de executar três ações em uma:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
você verificar vários valores armazenados em umNSArray
? Por exemploNSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
:?