2010-05-28 70 views
1

在我的項目中我有字符串假設NSString * str = @「$ 120.00」;如何檢查一個字符是字母或整數

從上面的字符串我得到每個單獨的字符,現在我必須得到字符串中的所有整數,即$是不是一個整數,所以我不想這樣,「1」是一個整數,我想這樣。我怎樣才能做到這一點任何一個可以幫助我

謝謝

+1

這是否有一些首要的原因,或者你只是爲了好玩而嘗試某些東西?如果你想從格式化的字符串中得到數值,那麼比手動方式有更好的方法... – ivans 2010-05-28 09:00:00

+0

你應該澄清這個問題。你想刪除非數字字符,創建一個字符串中存在的所有數字字符的集合,或找到字符串中表示的數字作爲整數? – 2010-06-02 16:36:03

回答

2

你可以得到一個字符集的數字,然後用它來檢查你的角色:

NSCharacterSet* digits = [NSCharacterSet decimalDigitCharacterSet]; 
if([digits characterIsMember: yourCharacter]) { 
... 
} 
1

Unbeli的回答可能是最好的它聽起來像你想要的,這是一個恰好代表整數的字符數組。但是,如果您的最終目標是重新組合所有您拉出來的整數字符,我會建議使用正則表達式。 Cocoa沒有用於替換的正則表達式包裝,但您應該能夠使用標準C <regex.h>代碼; Obj-C畢竟是一個超集。

但是,這會給你在你的例子12000,而不是120,這可能是你在之後。在這種情況下,我會試一試[str intValue]

0
// gcc foo.m -framework Foundation 
int main() 
{ 
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; 
    NSString* str = @"$ 120.00"; 
    const char* p = [str cStringUsingEncoding:[NSString defaultCStringEncoding]]; 
    while(*p) 
    { 
     if(isdigit(*p)) 
     { 
      NSLog(@"%c", *p); 
     } 
     p++; 
    } 
    [pool release]; 
} 
相關問題