Rimuove gli spazi bianchi dalla stringa in Objective-C

Ho un paio di archi. Alcuni hanno uno spazio bianco all’inizio e altri no. Voglio verificare se una stringa inizia con uno spazio bianco e in tal caso rimuoverlo.

C’è un metodo per questo nella class NSString. Controllare stringByTrimmingCharactersInSet:(NSCharacterSet *)set . È necessario utilizzare [NSCharacterSet whitespaceCharacterSet] come parametro:

 NSString *foo = @" untrimmed string "; NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

È ansible utilizzare il metodo stringByTrimmingCharactersInSet NSString con whitespaceAndNewlineCharacterSet NSCharacterSet come tale:

 NSString *testString = @" Eek! There are leading and trailing spaces "; NSString *trimmedString = [testString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

Questo rimuoverà solo lo spazio bianco iniziale.

 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); 

produzione

 mystring 123 , length 9 mystring 123 , length 6 

Ho scritto una macro veloce per ridurre la quantità di codice da scrivere.

Passaggio 1: modifica il file PCH della tua app, questo dovrebbe essere chiamato Project-Name-Prefix.pch

 #define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] 

Passo 2: divertiti a scrivere meno codice quando vuoi tagliare una stringa

 NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World ")); Output: Hello World