在我的項目中我有字符串假設NSString * str = @「$ 120.00」;如何檢查一個字符是字母或整數
從上面的字符串我得到每個單獨的字符,現在我必須得到字符串中的所有整數,即$是不是一個整數,所以我不想這樣,「1」是一個整數,我想這樣。我怎樣才能做到這一點任何一個可以幫助我
謝謝
在我的項目中我有字符串假設NSString * str = @「$ 120.00」;如何檢查一個字符是字母或整數
從上面的字符串我得到每個單獨的字符,現在我必須得到字符串中的所有整數,即$是不是一個整數,所以我不想這樣,「1」是一個整數,我想這樣。我怎樣才能做到這一點任何一個可以幫助我
謝謝
你可以得到一個字符集的數字,然後用它來檢查你的角色:
NSCharacterSet* digits = [NSCharacterSet decimalDigitCharacterSet];
if([digits characterIsMember: yourCharacter]) {
...
}
Unbeli的回答可能是最好的它聽起來像你想要的,這是一個恰好代表整數的字符數組。但是,如果您的最終目標是重新組合所有您拉出來的整數字符,我會建議使用正則表達式。 Cocoa沒有用於替換的正則表達式包裝,但您應該能夠使用標準C <regex.h>
代碼; Obj-C畢竟是一個超集。
但是,這會給你在你的例子12000,而不是120,這可能是你在之後。在這種情況下,我會試一試[str intValue]
。
// 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];
}
這是否有一些首要的原因,或者你只是爲了好玩而嘗試某些東西?如果你想從格式化的字符串中得到數值,那麼比手動方式有更好的方法... – ivans 2010-05-28 09:00:00
你應該澄清這個問題。你想刪除非數字字符,創建一個字符串中存在的所有數字字符的集合,或找到字符串中表示的數字作爲整數? – 2010-06-02 16:36:03