版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.06.28 |
前言
前面我简单的写了些NSString的初始化,写了几篇,都不难,但是可以对新手有一定的小帮助,对于大神级人物可以略过这几篇,NSString本来就没有难的,都是细枝末节,忘记了查一下就会了,没有技术难点,下面我们继续~~~
1. NSString简单细说(一)—— NSString整体架构
2. NSString简单细说(二)—— NSString的初始化
3. NSString简单细说(三)—— NSString初始化
4. NSString简单细说(四)—— 从URL初始化
5. NSString简单细说(五)—— 向文件或者URL写入
6. NSString简单细说(六)—— 字符串的长度
7. NSString简单细说(七)—— 与C字符串的转化
8. NSString简单细说(八)—— 识别和比较字符串
9. NSString简单细说(九)—— 字符串的合并
10. NSString简单细说(十)—— 字符串的分解
11. NSString简单细说(十一)—— 字符串的查找
12. NSString简单细说(十二)—— 字符串的替换
13. NSString简单细说(十三)—— 字符串的分行和分段
14. NSString简单细说(十四)—— 字符串位置的计算
15. NSString简单细说(十五)—— 字符串转化为propertyList
16. NSString简单细说(十六)—— 画字符串
17. NSString简单细说(十七)—— 字符串的折叠和前缀
18. NSString简单细说(十八)—— 字符串中大小写子母的变换
19. NSString简单细说(十九)—— 根据映射获取字符串
这一篇我们说一下获取字符串的数值。
获取字符串的数值
一、@property(readonly) double doubleValue;
该属性不包括包含任何空格的字符串,这个属性上溢为HUGE_VAL 和-HUGE_VAL ,下溢为0.0,如果字符串不以浮点数开头,则返回值为0。该属性使用存储在非本地化的格式化信息,使用NSScanner对象对字符串中的数值进行本地化扫描。
下面直接看代码
/**
* 1.@property(readonly) double doubleValue;
*/
NSString *str1 = @"中国helloChina";
CGFloat doubleStr1 = [str1 doubleValue];
NSLog(@"doubleStr1 = %lf",doubleStr1);
NSString *str2 = @"12.3455";
CGFloat doubleStr2 = [str2 doubleValue];
NSLog(@"doubleStr2 = %lf",doubleStr2);
下面看输出结果。
2017-06-29 00:13:25.136 NSString你会用吗?[2582:59710] doubleStr1 = 0.000000
2017-06-29 00:13:25.137 NSString你会用吗?[2582:59710] doubleStr2 = 12.345500
结论:简单易用。
二、@property(readonly) float floatValue;
用法同一所示,下面直接看代码。
/**
* 2.@property(readonly) float floatValue;
*/
NSString *str1 = @"中国helloChina";
CGFloat floatStr1 = [str1 floatValue];
NSLog(@"floatStr1 = %lf",floatStr1);
NSString *str2 = @"12.3455";
CGFloat floatStr2 = [str2 floatValue];
NSLog(@"floatStr2 = %lf",floatStr2);
下面看输出结果。
2017-06-29 00:21:58.769 NSString你会用吗?[2704:65889] floatStr1 = 0.000000
2017-06-29 00:21:58.770 NSString你会用吗?[2704:65889] floatStr2 = 12.345500
结论:简单易用,不多说了。
三、@property(readonly) int intValue;
该属性不包括包含任何空格的字符串,这个属性溢出值为INT_MAX 和INT_MIN,如果字符串不以有效的十进制开头,则返回值为0。该属性使用存储在非本地化的格式化信息,使用NSScanner对象对字符串中的数值进行本地化扫描。
下面还是直接看代码。
/**
* 3.@property(readonly) int intValue;
*/
NSString *str1 = @"中国helloChina";
int intStr1 = [str1 intValue];
NSLog(@"intStr1 = %d",intStr1);
NSString *str2 = @"12";
int intStr2 = [str2 intValue];
NSLog(@"intStr2 = %d",intStr2);
下面看输出结果。
2017-06-29 00:26:43.611 NSString你会用吗?[2783:69360] intStr1 = 0
2017-06-29 00:26:43.612 NSString你会用吗?[2783:69360] intStr2 = 12
结论:简单好懂。
四、@property(readonly) NSInteger integerValue;
它的用法和三差不多,下面直接看代码。
/**
* 4.@property(readonly) NSInteger integerValue;
*/
NSString *str1 = @"中国helloChina";
NSInteger intStr1 = [str1 integerValue];
NSLog(@"intStr1 = %ld",(long)intStr1);
NSString *str2 = @"12";
NSInteger intStr2 = [str2 integerValue];
NSLog(@"intStr2 = %ld",(long)intStr2);
下面看结果。
2017-06-29 00:32:25.223 NSString你会用吗?[2885:74319] intStr1 = 0
2017-06-29 00:32:25.223 NSString你会用吗?[2885:74319] intStr2 = 12
结论:简单不多说。
五、@property(readonly) long long longLongValue;
该属性不包括包含任何空格的字符串,这个属性溢出值为LLONG_MAX 和LLONG_MIN,如果字符串不以有效的十进制开头,则返回值为0。该属性使用存储在非本地化的格式化信息,使用NSScanner对象对字符串中的数值进行本地化扫描。
下面看代码。
/**
* 5.@property(readonly) long long longLongValue;
*/
NSString *str1 = @"中国helloChina";
long long intStr1 = [str1 longLongValue];
NSLog(@"intStr1 = %lld",intStr1);
NSString *str2 = @"1239823";
long long intStr2 = [str2 longLongValue];
NSLog(@"intStr2 = %lld",intStr2);
下面看输出结果。
2017-06-29 00:37:25.474 NSString你会用吗?[2990:79433] intStr1 = 0
2017-06-29 00:37:25.475 NSString你会用吗?[2990:79433] intStr2 = 1239823
结论:简单不多说了。
六、@property(readonly) BOOL boolValue;
该属性如果是“Y”,"y","T","t"或者1-9中的数字则返回YES,这个方法忽略任何尾随的字符,如果字符串不以有效的十进制数字开头,则返回NO,该属性假设开头不包括空格且以十进制开头,同时,它也会忽略初始化字符串,或者-/+后面跟着0。
下面看代码。
/**
* 6.@property(readonly) BOOL boolValue;
*/
NSString *str1 = @"T";
BOOL boolStr1 = [str1 boolValue];
NSLog(@"boolStr1 = %d",boolStr1);
NSString *str2 = @"mmnnn";
BOOL boolStr2 = [str2 boolValue];
NSLog(@"boolStr2 = %d",boolStr2);
下面看输出结果。
2017-06-29 00:51:33.184 NSString你会用吗?[3139:89655] boolStr1 = 1
2017-06-29 00:51:33.185 NSString你会用吗?[3139:89655] boolStr2 = 0
结论:简单易用。
后记
未完,待续~~~