iOS开发之NSString的几条实用技巧

NSString的几条小技巧

创建字符串

常量字符串

NSString *string = @"i am an iOSDevTip!";

常用创建方法

NSString *string = [[NSString alloc] init];

string = @"i am an iOSDevTip too!";

用initWithString创建字符串

NSString *string = [[NSString alloc] initWithString:@"iOSDevTip is here!"];

格式化创建字符串

int格式化字符串

int age = 20;
NSString *personAge = [NSString stringWithFormat:@"this person age is %d",age];

既然int格式化字符串,那么float、double等,也可以格式化字符串。

NSString格式化字符串

NSString *name = @"iOSDevTip";
NSString *personName = [NSString stringWithFormat:@"this person name is %@",name];

字符串比较

isEqualToString方法比较

//比较字符串
NSString *stingOne = @"This is an iOSDevTip!";
NSString *stringTwo = @"This is an iOSDevTip!";
BOOL result = [stingOne isEqualToString:stringTwo];

compare方法比较

BOOL result = [stingOne compare:stringTwo] == NSOrderedSame;

compare:方法返回值类型为NSComparisonResult。而NSComparisonResult有下面几个枚举值。

typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};

字符串大小写转换

小写转大写

 NSString *string = @"This is an iOSDevTip!";
[string lowercaseString];

大写转小写

NSString *string = @"This is an iOSDevTip!";
[string uppercaseString];

截取字符串

substringToIndex截取字符串

NSString *string = @"This is a operation string!";
NSString *subToString = [string substringToIndex:6];

截取的subToString为This i

substringFromIndex截取字符串

NSString *subFromString = [string substringFromIndex:6];

截取的subFromString为s a operation string!

substringWithRange截取字符串

NSString *rangeString = [string substringWithRange:NSMakeRange(6, 3)];

截取的rangeString为s a!

判断字符串是否包含另一个字符串

rangeOfString判断

NSString *string1 = @"This is a iOSDevTip";
NSString *string2 = @"iOSDevTip";
NSRange range = [string1 rangeOfString:string2];
NSInteger location = range.location;
NSInteger leight = range.length;
NSString *logString = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%ld,Leight:%ld",location,leight]];
NSLog(@"logString:%@",logString);

打印出来:

iOSStrongDemo[8837:2221170] logString:Location:10,Leight:9

如果Leight为0,说明不包含。还有更多关于NSString的用法,大家一起探索吧。


0.首字母大写

代码:

//首字母大写
NSString *string = @"ligang";
NSLog(@"string: %@",[string capitalizedString]);

打印:

2015-07-16 23:06:11.652 iOSStrongDemo[10279:3062010] string: Ligang

1.分割字符串

代码:

//分割字符串
NSString *string = @"This is a iOSDevTip";
NSArray *array = [string componentsSeparatedByString:@"a"];
NSString *string1 = [array objectAtIndex:0];
NSString *string2 = [array objectAtIndex:1];
NSLog(@"string1:%@  string2:%@",string1,string2);

打印:

2015-07-16 22:40:39.559 iOSStrongDemo[10165:3055448] string1:This is   string2: iOSDevTip

2.追加字符串

代码:

//追加字符串
NSMutableString *string = [[NSMutableString alloc] initWithString:@"I Love "];
[string appendString:@"China"];
NSLog(@"string:%@",string);

打印:

2015-07-16 22:42:32.305 iOSStrongDemo[10189:3056410] string:I Love China

3.插入字符串

代码:

//插入字符串
NSMutableString *string = [[NSMutableString alloc] initWithString:@"I China"];
[string insertString:@"Love " atIndex:2];
NSLog(@"string: %@",string);

打印:

2015-07-16 22:44:10.706 iOSStrongDemo[10206:3057014] string: I Love China

4.删除字符串

代码:

//删除字符串
NSMutableString *string = [[NSMutableString alloc] initWithString:@"I love China"];
[string deleteCharactersInRange:NSMakeRange(2, 4)];
NSLog(@"String1: %@",string);

打印:

2015-07-16 22:46:58.437 iOSStrongDemo[10219:3057749] String1: I  China

5.判断是否包含前后缀

代码:

//判断是否包含前后缀
NSString *string = @"I love China";
BOOL isHasI = [string hasPrefix:@"I"];
BOOL isHasChina = [string hasSuffix:@"China"];

6.替换字符串

代码:

//替换字符串
NSString *string = @"I love China";
NSString *replaceString = [string stringByReplacingOccurrencesOfString:@"love" withString:@"like"];
NSLog(@"replaceString:  %@",replaceString);

打印:

2015-07-16 22:56:07.405 iOSStrongDemo[10236:3059503] replaceString:  I like China

7.去除字符串首尾的空格和换行符

代码:

//去除字符串首尾的空格和换行符
NSString *string = @" I love China ";
NSString *text = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"text:%@",text);

打印:

2015-07-16 23:00:47.845 iOSStrongDemo[10265:3061013] text:I love China

本研究利用Sen+MK方法分析了特定区域内的ET(蒸散发)趋势,重点评估了使用遥感数据的ET空间变化。该方法结合了Sen斜率估算器和Mann-Kendall(MK)检验,为评估长期趋势提供了稳健的框架,同时考虑了时间变化和统计显著性。 主要过程与结果: 1.ET趋势可视化:研究利用ET数据,通过ET-MK和ET趋势图展示了蒸散发在不同区域的空间和时间变化。这些图通过颜色渐变表示不同的ET水平及其趋势。 2.Mann-Kendall检验:应用MK检验来评估ET趋势的统计显著性。检验结果以二元分类图呈现,标明ET变化的显著性,帮助识别出有显著变化的区域。 3.重分类结果:通过重分类处理,将区域根据ET变化的显著性进行分类,从而聚焦于具有显著变化的区域。这一过程确保分析集中在具有实际意义的发现上。 4.最终输出:最终结果以栅格图和png图的形式呈现,支持各种应用,包括政策规划、水资源管理和土地利用变化分析,这些都是基于详细的时空分析。 ------------------------------------------------------------------- 文件夹构造: data文件夹:原始数据,支持分析的基础数据(MOD16A2H ET数据 宁夏部分)。 results文件夹:分析结果与可视化,展示研究成果。 Sen+MK_optimized.py:主分析脚本,适合批量数据处理和自动化分析。 Sen+MK.ipynb:Jupyter Notebook,复现可视化地图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值