J'ai quelques cordes. Certains ont un espace au début et d'autres non. Je veux vérifier si une chaîne de caractères commence par un espace et le supprimer.
Il existe une méthode pour cela dans la classe NSString. Vérifiez stringByTrimmingCharactersInSet:(NSCharacterSet *)set
. Tu devrais utiliser [NSCharacterSet whitespaceCharacterSet]
comme paramètre:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Vous pouvez utiliser la méthode stringByTrimmingCharactersInSet NSString avec la méthode whitespaceAndNewlineCharacterSet NSCharacterSet en tant que telle:
NSString *testString = @" Eek! There are leading and trailing spaces ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
J'ai écrit une macro rapide pour réduire la quantité de code à écrire.
Étape 1: Modifiez le fichier PCH de votre application. Celui-ci doit s'appeler Project-Name-Prefix.pch.
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Étape 2: appréciez écrire moins de code lorsque vous souhaitez couper une chaîne
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World
Cela supprimera uniquement les espaces blancs qui précèdent.
NSString *myString = @" 123 ";
NSLog(@"mystring %@, length %d",myString, myString.length);
NSRange range = [myString rangeOfString:@"^\\s*" options:NSRegularExpressionSearch];
myString = [myString stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"mystring %@, length %d",myString, myString.length);
sortie
mystring 123 , length 9
mystring 123 , length 6