Tengo un par de cuerdas. Algunos tienen un espacio en blanco al principio y otros no. Quiero comprobar si una cadena comienza con un espacio en blanco y, de ser así, eliminarlo.
Tengo un par de cuerdas. Algunos tienen un espacio en blanco al principio y otros no. Quiero comprobar si una cadena comienza con un espacio en blanco y, de ser así, eliminarlo.
Respuestas:
Hay un método para eso en la clase NSString. Comprobar stringByTrimmingCharactersInSet:(NSCharacterSet *)set
. Deberías usar [NSCharacterSet whitespaceCharacterSet]
como parámetro:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
stringByTrimmingCharactersInSet
solo elimina los caracteres del principio y el final de la cadena, no los del medio. Para aquellos que están tratando de quitar espacio en medio de una cuerda, use [yourString stringByReplacingOccurrencesOfString:@" " withString:@""]
.
Puede utilizar el método stringByTrimmingCharactersInSet NSString con el whitespaceAndNewlineCharacterSet NSCharacterSet como tal:
NSString *testString = @" Eek! There are leading and trailing spaces ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Escribí una macro rápida para reducir la cantidad de código que se necesitaba escribir.
Paso 1: Edite el archivo PCH de su aplicación, este debe llamarse Project-Name-Prefix.pch
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Paso 2: disfruta escribiendo mucho menos código cuando quieras recortar una cadena
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World
Esto eliminará solo el espacio en blanco inicial.
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);
salida
mystring 123 , length 9
mystring 123 , length 6