I have a couple of strings. Some have a whitespace in the beginning and some not. I want to check if a string begins with a whitespace and if so remove it.
Remove whitespace from string in Objective-C
Asked Answered
A little searching wouldn't hurt. Have a look at What's the best way to trim whitespace from a string in Cocoa Touch? –
Lukin
There is method for that in NSString class. Check stringByTrimmingCharactersInSet:(NSCharacterSet *)set
. You should use [NSCharacterSet whitespaceCharacterSet]
as parameter:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
This will also trim trailing whitespace (which may or may not be desirable. (The original question asks to just remove it from the beginning). –
Sonorant
stringByTrimmingCharactersInSet
only removes characters from the beginning and the end of the string, not the ones in the middle. For those who are trying to remove space in the middle of a string, use [yourString stringByReplacingOccurrencesOfString:@" " withString:@""]
. –
Inborn You could use the stringByTrimmingCharactersInSet NSString method with the whitespaceAndNewlineCharacterSet NSCharacterSet as such:
NSString *testString = @" Eek! There are leading and trailing spaces ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+1 for recommending the whitespaceAndNewlineCharacterSet rather than just the whitespaceCharacterSet. –
Dewan
-1 to Apple for redefining whitespace to not include newlines (they should have made a new inlineWhitespaceCharacterSet instead) –
Imposing
This will also trim trailing whitespace (which may or may not be desirable. (The original question asks to just remove it from the beginning). –
Sonorant
This will remove only the leading white space.
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);
output
mystring 123 , length 9
mystring 123 , length 6
Ryan, thanks for answering the original question!!! –
Malang
I wrote a quick macro to reduce the amount of code needed to be written.
Step 1: Edit your app's PCH file, this should be named Project-Name-Prefix.pch
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Step 2: Enjoy writing way less code when you want to trim a string
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World
© 2022 - 2024 — McMap. All rights reserved.