Risposte:
Puoi usare il -hasPrefix:metodo di 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))
}
Puoi usare:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
hasPrefix funziona particolarmente bene. ad esempio, se stavi cercando un URL http in a NSString, utilizzeresti componentsSeparatedByStringper creare NSArraye iterare l'array usando hasPrefixper trovare gli elementi che iniziano con 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 restituisce un valore booleano che indica se una determinata stringa corrisponde ai caratteri iniziali del destinatario.
- (BOOL)hasPrefix:(NSString *)aString,
Il parametro aStringè una stringa che stai cercando Il valore restituito è SÌ se aString corrisponde ai caratteri iniziali del destinatario, altrimenti NO. Restituisce NO se aStringè vuoto.
Usa characterAtIndex:. Se il primo carattere è un asterisco, utilizzare substringFromIndex:per ottenere la stringa senza '*'.
Un altro approccio per farlo ..
Possa aiutare qualcuno ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
Come risposta più generale, prova a utilizzare il metodo hasPrefix. Ad esempio, il codice seguente controlla se una stringa inizia con 10, che è il codice di errore utilizzato per identificare un determinato problema.
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
Questo potrebbe aiutare? :)
Basta cercare il personaggio all'indice 0 e confrontarlo con il valore che stai cercando!
Questo bel po 'di codice l'ho trovato per caso, e devo ancora vederlo suggerito su Stack. Funziona solo se esistono i caratteri che desideri rimuovere o modificare, il che è conveniente in molti scenari. Se il / i personaggio / i non esiste / i, non cambierà la tua NSString:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
Ecco come lo 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);
Questa linea è semplicissima per eseguire tre azioni in una:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"controllare più valori memorizzati in unNSArray? Ad esempioNSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];:?