2012-03-12 22 views
10

ile silme NSString'imdeki tüm karakterleri (sayısal, alfabetik, gelen, boşluk veya dönem) kaldırmak istiyorum.İstenmeyen tüm karakterleri NSCharacterSet

NSCharacterSet kullanıyorum ama buna ek bir yolu yoktur. Uzayda, virgülle ve periyot eklemek için değiştirilebilir sürümü denedim, ancak başarılı olmadım.

// str is my string 
NSCharacterSet *charactersToRemove = 
[[ NSCharacterSet letterCharacterSet ] invertedSet ]; 

NSString *trimmedReplacement = 
[[ str componentsSeparatedByCharactersInSet:charactersToRemove ] 
componentsJoinedByString:@"" ]; 
// this removes spaces, periods, and commas too. How do I add in to the character set to keep them 

cevap

32

Kesilebilir bir karakter kümesi oluşturun ve saklamak istediğiniz ek karakterleri ekleyin. Ayrıca dizilerinizde sayıları tutmak istiyorsanız letterCharacterSet yerine alphanumericCharacter setini kullanmak isteyebilirsiniz.

NSMutableCharacterSet *charactersToKeep = [NSMutableCharacterSet alphanumericCharacterSet]; 
[charactersToKeep addCharactersInString:@" ,."]; 

NSCharacterSet *charactersToRemove = [charactersToKeep invertedSet]; 

NSString *trimmedReplacement = [[ str componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@"" ]; 
+0

Değişken bir karakter kümesinin tersini kullanmak, değişken bir karakter kümesini tersine çevirmekten çok daha verimlidir. –

İlgili konular