Réponses:
Vous pouvez utiliser la -hasPrefix:
méthode de NSString
:
Objectif c:
NSString* output = nil;
if([string hasPrefix:@"*"]) {
output = [string substringFromIndex:1];
}
Rapide:
var output:String?
if string.hasPrefix("*") {
output = string.substringFromIndex(string.startIndex.advancedBy(1))
}
Vous pouvez utiliser:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
hasPrefix fonctionne particulièrement bien. par exemple, si vous cherchiez une URL http dans un NSString
, vous utiliseriez componentsSeparatedByString
pour créer un NSArray
et itérer le tableau en utilisant hasPrefix
pour trouver les éléments commençant par 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
renvoie une valeur booléenne qui indique si une chaîne donnée correspond aux premiers caractères du récepteur.
- (BOOL)hasPrefix:(NSString *)aString,
Le paramètre aString
est une chaîne que vous recherchez. La valeur de retour est YES si une chaîne correspond aux premiers caractères du récepteur, sinon NON. Renvoie NO si aString
est vide.
Utilisez characterAtIndex:
. Si le premier caractère est un astérisque, utilisez substringFromIndex:
pour obtenir la chaîne sans '*'.
Une autre approche pour le faire ..
Puisse-t-il aider quelqu'un ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
Comme réponse plus générale, essayez d'utiliser la méthode hasPrefix. Par exemple, le code ci-dessous vérifie si une chaîne commence par 10, qui est le code d'erreur utilisé pour identifier un certain problème.
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
Cela pourrait aider? :)
Recherchez simplement le caractère à l'index 0 et comparez-le avec la valeur que vous recherchez!
Ce joli petit bout de code que j'ai trouvé par hasard, et je n'ai pas encore vu le suggérer sur Stack. Cela ne fonctionne que si les caractères que vous souhaitez supprimer ou modifier existent, ce qui est pratique dans de nombreux scénarios. Si le ou les caractères n'existent pas, cela ne modifiera pas votre NSString:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
Voici comment je l'utilise:
//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);
Cette ligne est super facile à réaliser trois actions en une:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
vérifier les valeurs multiples stockées dans unNSArray
? Par exempleNSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
:?