如何检查字符是字母还是整数

时间:2010-05-28 08:57:10

标签: iphone

在我的项目中我有字符串假设NSString * str = @“$ 120.00”;

从上面的字符串我得到每个单独的字符,现在我必须得到字符串中的所有整合,即$不是整数所以我不想要那个,“1”是一个整数我想要这样。我怎么能这样做可以帮助我

谢谢

3 个答案:

答案 0 :(得分:2)

您可以获取数字字符集,然后使用它来检查您的字符:

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

答案 1 :(得分:1)

Unbeli的答案可能是你想要的最好的答案,这是一个恰好代表整数的字符数组。

但是,如果您的最终目标是重新组合您已拉出的所有整数字符,我建议使用正则表达式。 Cocoa没有用于替换的正则表达式包装器,但是您应该能够使用标准的C <regex.h>代码; Obj-C毕竟是一个超集。

但是在你的例子中你会得到12000,而120可能就是你所追求的。在这种情况下,我会试试[str intValue]

答案 2 :(得分: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];
}