J'ai une petite question. 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. J'espère que quelqu'un pourra m'aider.
Réponses
Trop de publicités? Il existe une méthode pour cela dans la classe NSString. Vérifiez stringByTrimmingCharactersInSet:(NSCharacterSet *)set
. Vous devriez 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 le NSCharacterSet whitespaceAndNewlineCharacterSet en tant que tel:
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