içinde boşluktan dize kaldırım birkaç dizim var. Bazılarında başlangıçta bir boşluk var ve bazıları değil. Bir dizenin bir boşluk ile başlayıp başlamadığını kontrol etmek istiyorum ve eğer varsa kaldırın.Objectition-C
cevap
NSString sınıfında bunun için bir yöntem var. stringByTrimmingCharactersInSet:(NSCharacterSet *)set
'u kontrol edin. Sen parametre olarak [NSCharacterSet whitespaceCharacterSet]
kullanmalıdır:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Bu, aynı zamanda (eğer orijinal soru baştan kaldırmak için sorar) orijinal boşluk bırakacaktır (orijinal soru sorar) – lnafziger
'stringByTrimmingCharactersInSet' sadece karakterleri baştan kaldırır ve dizenin sonu, ortadakiler değil, bir dizenin ortasındaki boşlukları çıkarmaya çalışanlar için, [[stringimStyle stringByReplacingOccurrencesOfString: @ "" withString: @ ""] '. –
Aşağıdaki gibi whitespaceAndNewlineCharacterSet NSCharacterSet ile stringByTrimmingCharactersInSet NSString yöntemi kullanabilirsiniz:
NSString *testString = @" Eek! There are leading and trailing spaces ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+1 tavsiye etmek için whitespaceCharacterSet yerine whitespaceAndNewlineCharacterSet –
-1, yeni satırları içermemesi için boşlukları yeniden tanımlamak üzere Apple'a (bunun yerine yeni bir inlineWhitespaceCharacterSet yapmış olmalıydı) – AlexChaffee
Ayrıca sondaki boşlukları kırpın (ki bu da istenebilir veya olmayabilir). (Asıl soru, onu baştan kaldırmayı ister). – lnafziger
Bu yalnızca önde gelen boşluk kaldıracaktır.
mystring 123 , length 9
mystring 123 , length 6
Bu, önde gelen boşlukları kesmek için en iyi çözümdür – jcpennypincher
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);
çıkış yazdım gereken kod miktarını azaltmak için hızlı bir makro yazdım.
Adım 1: uygulamanızın PCH dosyası düzenleme bu Proje Adı-Prefix.pch adlı olmalıdır
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Adım 2: Bir dize
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World
kırpmak istediğinizde yolu daha az kod yazma keyfini
Küçük bir arama incitmez. [Kakao Touch'da bir dizeden boşlukları kesmenin en iyi yolu nedir?] 'A bakın. (Http://stackoverflow.com/questions/474270/whats-the-best-way-to-trim-whitespace-from-a -kring-in-kakao-touch) – Abizern