有時候我想要消除一段字串裡的某些字元,比如說我要消除「空白字元」、「數字」或是「字母」等等,甚至任何我想消除的多個字元(如:「123xyzˊ_>ˋ<;」),可以怎麼做呢?只要把想消除的字元通通都丟到集合中,呼叫內建的方法即可達成!
學會消除特定字元 (Eliminate Specific Characters),以後我就不用慢慢刪除空白字元啦~
直接寫程式就能很清楚知道如何使用以及效果如何。
/**
Theme: Eliminate Specific Characters
IDE: Xcode 5
Language: Objective C
Date: 102/12/11
Author: HappyMan
Blog: https://cg2010studio.wordpress.com/
*/
- (void)viewDidLoad
{
[super viewDidLoad];
// 消除非字母的字元
NSString *testStr = @"I'm HappyMan. I'd like to live happily:)~";
NSString *letters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
NSCharacterSet *notLetters = [[NSCharacterSet characterSetWithCharactersInString:letters] invertedSet];
NSString *newString = [[testStr componentsSeparatedByCharactersInSet:notLetters] componentsJoinedByString:@""];
NSLog(@"newString: %@", newString);
// 逐步檢查每個字元
for (int i = 0; i < [testStr length]; i++) {
unichar c = [testStr characterAtIndex:i];
if ([notLetters characterIsMember:c]) {
NSLog(@"c: %c", c);
}
}
}
執行結果:
newString: ImHappyManIdliketolivehappily
c: ‘
c:
c: .
c:
c: ‘
c:
c:
c:
c:
c: :
c: )
c: ~
很好玩,對吧!?回想寫C/C++的時候,是自己寫函式來處理字串中每一個字元,如今我不必再自己寫較底層的的程式,直接拿來用吧~因為我要把時間拿來做更多有意義的事情!但學寫程式最好從較底層邏輯開始:)~
隨意留個言吧:)~