Objective-C中NSString转NSNumber的方法
来源:互联网 发布:触点软件下载 编辑:程序博客网 时间:2024/06/06 08:30
在Objective-C中,以数字格式组成的字符串经常需要转换为NSNumber对象后再使用。
例如有一个字符串对象@"111.22",需要转为NSNumber对象,最简单的方法就是这样:[NSNumber numberWithFloat:[@"111.22" floatValue]]。
这个方法先使用NSString的floatValue方法将字符串转成float,再使用NSNumber的numberWithFloat方法将结果转成NSNumber。但它有一个前提条件,就是输入的字符串一定要以数字组成。如果发现有非数字字符,则直接导致程序出错。因此,它需要事先判断,保证字符串能转成NSNumber。
根据新的要求,将转换操作过程修改一下,代码如下所示:
NSString *ss=@"224.34129";
id result;
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
if ([f numberFromString:ss])
{
result=[NSNumber numberWithFloat:[ss floatValue]];
}
else
{
result=ss;
}
NSLog(@"%.2f",[result floatValue]);
如此一改,功能倒是没问题了,只是看上去有一些累赘。我们知道,代码越简洁,出bug的概率就越低,代码也越显得优雅。再做修改,如下所示:
NSString *ss=@"224.34129";
id result;
result=[f numberFromString:ss];
if(!(result))
{
result=ss;
}
NSLog(@"%.2f",[result floatValue]);
例如有一个字符串对象@"111.22",需要转为NSNumber对象,最简单的方法就是这样:[NSNumber numberWithFloat:[@"111.22" floatValue]]。
这个方法先使用NSString的floatValue方法将字符串转成float,再使用NSNumber的numberWithFloat方法将结果转成NSNumber。但它有一个前提条件,就是输入的字符串一定要以数字组成。如果发现有非数字字符,则直接导致程序出错。因此,它需要事先判断,保证字符串能转成NSNumber。
根据新的要求,将转换操作过程修改一下,代码如下所示:
NSString *ss=@"224.34129";
id result;
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
if ([f numberFromString:ss])
{
result=[NSNumber numberWithFloat:[ss floatValue]];
}
else
{
result=ss;
}
NSLog(@"%.2f",[result floatValue]);
如此一改,功能倒是没问题了,只是看上去有一些累赘。我们知道,代码越简洁,出bug的概率就越低,代码也越显得优雅。再做修改,如下所示:
NSString *ss=@"224.34129";
id result;
result=[f numberFromString:ss];
if(!(result))
{
result=ss;
}
NSLog(@"%.2f",[result floatValue]);
还有其他的转换函数,如
1、字符串拼接
NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];
2、字符串转int
int intString = [newString intValue];
3、int转字符串
NSString *stringInt = [NSString stringWithFormat:@"%d",intString];
4、字符串转float
float floatString = [ newString floatValue];
5、float转字符串
NSString *stringFloat = [NSString stringWithFormat:@"%f",intString];
通过这些转换操作,可以理解NSNumber、NSString、float三个类型的关系和转换方法。int/float是Objective-C的原始类型,而NSNumber和NSString则是类。
- Objective-C中NSString转NSNumber的方法
- objective-c 中 NSNumber 和 NSString 中常见方法的使用
- 5. 18 Objective-C 常用数据类型(NSValue NSNumber NSString )的方法
- Objective-c 的一些基础知识,NSString,NSNumber,NSArray 等
- Objective-C 8 NSNumber的常用方法
- Objective C 中NSNumber的引用计数
- Objective-c中数字型字符串转换NSNumber方法
- Objective-c中数字型字符串转换NSNumber的三种方法
- 【Objective-C】OC中NSNumber数字对象的常用处理方法
- Objective-C---3---NSString的常用方法
- Objective-C NSString类的常用方法
- Objective C - Foundation - NSNumber & NSString & NSArray & NSDictionary & NSSet
- Objective-C NSArray 基础 (NSString NSNumber NSEnumerator )
- Objective-C: Foundation——NSString、NSMutableString、NSNumber、NSValue、NSDate
- objective-c 中NSString的用法
- objective-c 中NSString的用法
- Objective C 中 NSString类的用法
- Objective-C中NSString对象的retainCount
- 如何控制TAB键跳转的顺序
- Objective-C内存管理教程和原理剖析
- 工商银行支付接口-处理工行支付成功后的消息通知
- httpClient超时设置
- fishcat论 RMAN使用crosscheck archivelog all注意
- Objective-C中NSString转NSNumber的方法
- php:substr_count (PHP 4, PHP 5) — 计算字串出现的次数
- select在各个浏览器中的兼容性问题
- Objective-C内存管理 调试内存泄露
- ANDROID INTENT.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
- SVG坐标系统与坐标转换
- ACM训练方案
- Objective-C内存管理 理解Autorelease