苹果开发 笔记(70)常用的字符串操作

来源:互联网 发布:网络教育是什么学历 编辑:程序博客网 时间:2024/06/10 01:12

ios 里面经常要操作字符串,字符串也是每天必须面对的。今天做了一些题目也提及到这些很基本的,平时也会用到,所以现在也当笔记记录一下。

常用的操作如下:
格式化字符串
裁剪字符串
分割字符串
合并字符串
读取文本
过滤查询
替换字符串
转换拼音
大小写转换
搜索判断

1.格式化字符串

格式化数字

NSInteger money = 120;NSString *priceStr =  [NSString stringWithFormat:@"当前商品价格:%ld",(long)money];NSLog(@"%@",priceStr);

输出一个浮点数,四舍五入并保留其一位小数

 CGFloat a = 20.46756; NSLog(@"输出结果是:%.1f",a);

转换ascii 编码的 用于城市列表 或者其他等

NSString *charText = [NSString stringWithFormat:@"%c",'A'];NSString *charText = [NSString stringWithFormat:@"%c",'B'];NSString *charText = [NSString stringWithFormat:@"%c",'C'];NSString *charText = [NSString stringWithFormat:@"%c",i+'A'];//i递增变量

2.裁剪字符串

搜索到字符串的位置,定位裁剪字符串。

NSString *str = @"百度|www.baidu.com";NSRange range = [str rangeOfString:@"|"];NSInteger index  = range.location;NSString *frontStr  =  [str substringToIndex:index];NSString *endStr  = [str substringFromIndex:index+1];NSLog(@"得到结果%@,%@",frontStr,endStr);

3.分割字符串

经常要对一些符号进行分割 如#,| ,@ 这样的符号做出分割

 NSString *str = @"百度|www.baidu.com"; NSArray *resultArr =  [str componentsSeparatedByString:@"|"]; NSLog(@"得到结果%@,%@",resultArr[0],resultArr[1]);

4 合并字符串

NSInteger money = 120;NSString *priceStr =  [NSString stringWithFormat:@"当前商品价格:%ld",(long)money];priceStr = [priceStr stringByAppendingPathComponent:@"元"];NSLog(@"%@",priceStr);

显示结果为:当前商品价格:120/元

NSInteger money = 120;NSString *priceStr =  [NSString stringWithFormat:@"当前商品价格:%ld",(long)money];priceStr = [priceStr stringByAppendingString:@"元"];NSLog(@"%@",priceStr);

显示结果为:当前商品价格:120元

区别多了一个 / 号,斜杠号

5.读取文本

通过读取包里面的文本,读取显示文本内容。

NSString *path = [[NSBundle mainBundle]pathForResource:@"example" ofType:@"txt"];NSString *codeStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];self.codeTextView.text  = codeStr;

6.过滤查询

经常在查询的时候进行匹配、过滤等操作

 NSArray *array = @[@"shanghai",@"shandong",@"beijing"]; NSString *str = @"beijing"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF ==%@",str]; NSLog(@"%@",[array filteredArrayUsingPredicate:predicate]);

匹配包含的数据

 NSArray *array = @[@"shanghai",@"shandong",@"beijing"]; NSString *str = @"ang"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS%@",str]; NSLog(@"%@",[array filteredArrayUsingPredicate:predicate]);

7.替换字符串

采用正则的方式替换字符串

 NSError *error = nil; NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"\\$num\\$" options:0 error:&error];NSString *replaceStr  = @"是否花费金币价格为$num$购买铜玉?购买后返回给买家$num$";NSString *resultStr  = [ regularExpression stringByReplacingMatchesInString:replaceStr options:0 range:NSMakeRange(0, replaceStr.length) withTemplate:@"200"];NSLog(@"匹配结果%@",resultStr);

8.转换拼音

对字母和姓氏进行转换

-(NSString *)transToPinyin:(NSString *) str{    NSMutableString *changeStr = [str mutableCopy];    CFMutableStringRef cfref = (__bridge CFMutableStringRef) changeStr;    CFStringTransform(cfref, NULL, kCFStringTransformMandarinLatin, false);    CFStringTransform(cfref, NULL, kCFStringTransformStripDiacritics, false);    return changeStr;}

9.转换大小写

NSString 有大小写的转换属性值提供
使用uppercaseString 和lowercaseString 则可以对字母进行转换大小写了

10. 搜索判断

利用rangeOfString 可以匹配到相应的结果

NSString *searchText = @"正在搜索关键字";NSString *text = @"关键字";NSRange resultRange= [searchText rangeOfString:text options:NSCaseInsensitiveSearch];if(resultRange.location != NSNotFound  ){   NSLog(@"搜索匹配结果");            }
0 0