Just a Computer Graphics Studio & My Life

有時候我想要消除一段字串裡的某些字元,比如說我要消除「空白字元」、「數字」或是「字母」等等,甚至任何我想消除的多個字元(如:「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++的時候,是自己寫函式來處理字串中每一個字元,如今我不必再自己寫較底層的的程式,直接拿來用吧~因為我要把時間拿來做更多有意義的事情!但學寫程式最好從較底層邏輯開始:)~

參考:Detecting if a character is either a letter or a number

Advertisements

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: