Ich habe ein paar Saiten. Einige haben am Anfang ein Leerzeichen, andere nicht. Ich möchte überprüfen, ob eine Zeichenfolge mit einem Leerzeichen beginnt, und wenn ja, entfernen Sie diese.
Ich habe ein paar Saiten. Einige haben am Anfang ein Leerzeichen, andere nicht. Ich möchte überprüfen, ob eine Zeichenfolge mit einem Leerzeichen beginnt, und wenn ja, entfernen Sie diese.
Antworten:
Dafür gibt es in der NSString-Klasse eine Methode. Überprüfen Sie stringByTrimmingCharactersInSet:(NSCharacterSet *)set
. Sie sollten [NSCharacterSet whitespaceCharacterSet]
als Parameter verwenden:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
stringByTrimmingCharactersInSet
Entfernt nur Zeichen vom Anfang und Ende der Zeichenfolge, nicht die Zeichen in der Mitte. Verwenden Sie für diejenigen, die versuchen, Leerzeichen in der Mitte eines Strings zu entfernen [yourString stringByReplacingOccurrencesOfString:@" " withString:@""]
.
Sie können die stringByTrimmingCharactersInSet NSString- Methode mit dem WhitespaceAndNewlineCharacterSet NSCharacterSet als solchem verwenden:
NSString *testString = @" Eek! There are leading and trailing spaces ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Ich habe ein schnelles Makro geschrieben, um die Menge an Code zu reduzieren, die geschrieben werden muss.
Schritt 1: Bearbeiten Sie die PCH-Datei Ihrer App. Diese sollte Project-Name-Prefix.pch heißen
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Schritt 2: Schreiben Sie viel weniger Code, wenn Sie eine Zeichenfolge zuschneiden möchten
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World
Dadurch wird nur der führende Leerraum entfernt.
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);
Ausgabe
mystring 123 , length 9
mystring 123 , length 6