目标c:检查整数/整数/数字

Dan*_*iel 15 variables int objective-c nsnumber nsstring

在目标c中,我如何检查字符串/ NSNumber是整数还是整数

Ans*_*ala 36

如果您要确定是否NSString具有数值,请尝试使用NSNumberFormatter.

-(BOOL) stringIsNumeric:(NSString *) str {
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    NSNumber *number = [formatter numberFromString:str];
    [formatter release];
    return !!number; // If the string is not numeric, number will be nil
}
Run Code Online (Sandbox Code Playgroud)

  • 我以为我是唯一一个做过!! 黑客强迫布尔.太好了! (4认同)
  • 这个问题比[已批准的答案](http://stackoverflow.com/a/3473806/377384)更好,因为它会给你一个真/假的结果.批准的答案没有. (3认同)
  • 这样更好,因为如果检查字母以数字开头的字符串,则接受的答案不会按预期工作.示例"1234asdf"将返回1234,而不是0,这将返回NO.并且"000"将返回0并且您可能认为是错误的但事实并非如此 (2认同)

cod*_*ger 13

您可以在NSString上使用intValue方法:

NSString *myString = @"123";
[myString intValue]; // returns (int)123
Run Code Online (Sandbox Code Playgroud)

以下是它的Apple文档 - 如果它不是有效的整数,它将返回0:http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html #// apple_ref/OCC/instm /的NSString /的intValue

希望有所帮助!

  • 如果字符串表示实际的整数值0怎么办? (16认同)
  • 小心这个.如果字符串不以整数值开头,则仅返回0.像"123 street"这样的东西仍将返回整数123.来源:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/DOC/UID/20000154-的intValue (11认同)