Oc 字符串
来源:互联网 发布:大型网络3d手游2016年人气 编辑:程序博客网 时间:2024/06/05 09:24
判断字符串是否含有中文
+ (BOOL)checkIsChinese:(NSString *)string{ for (int i=0; i<string.length; i++) { unichar ch = [string characterAtIndex:i]; if (0x4E00 <= ch && ch <= 0x9FA5) { return YES; } } return NO;}
计算字符串长度
方法一
- (int)convertToInt:(NSString*)strtemp{ int strlength = 0; char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; } } return strlength;}
方法二
-(NSUInteger) unicodeLengthOfString: (NSString *) text{ NSUInteger asciiLength = 0; for (NSUInteger i = 0; i < text.length; i++) { unichar uc = [text characterAtIndex: i]; asciiLength += isascii(uc) ? 1 : 2; } return asciiLength;}
iOS 获取汉字的拼音
+ (NSString *)transform:(NSString *)chinese{ //将NSString装换成NSMutableString NSMutableString *pinyin = [chinese mutableCopy]; //将汉字转换为拼音(带音标) CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformMandarinLatin, NO); NSLog(@"%@", pinyin); //去掉拼音的音标 CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformStripCombiningMarks, NO); NSLog(@"%@", pinyin); //返回最近结果 return pinyin; }
- 不可变字符串 NSStirng
用copy 的原因: 外界修改了字符串 不会影响里面。
@property(nonatomic ,copy) NSString * name ;
字符串反转
第一种:
- (NSString *)reverseWordsInString:(NSString *)str{ NSMutableString *newString = [[NSMutableString alloc] initWithCapacity:str.length]; for (NSInteger i = str.length - 1; i >= 0 ; i --) { unichar ch = [str characterAtIndex:i]; [newString appendFormat:@"%c", ch]; } return newString;}
//第二种:
- (NSString*)reverseWordsInString:(NSString*)str{ NSMutableString *reverString = [NSMutableString stringWithCapacity:str.length]; [str enumerateSubstringsInRange:NSMakeRange(0, str.length) options:NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { [reverString appendString:substring]; }]; return reverString;}
%@ 是输出OC字符串用的 C的字符串用%s
在OC 中 @符号代表对象的意思 也可以代表一个指针
不需要自己释放内存(系统帮我们释放内存)
NSString *str = @”Hello”;
需要自己释放内存。
NSString *str =[[NSString alloc]init];str =@"ios";NSString *str =[[NSString alloc]initWithFormat:@“%d” %f %s ,10,10.1,”~~~”];NSString *str =[[NSString stringWithString:str1];
格式化字符串
int a =10;int b = 20;NSString *str = [NSString stringWithFormat:@"@a= %d b=%d",a,b];
拼接字符串
NSString *str =[str1 stringByAppendingString :str2];
转化大小写
NSString *str1 =@"aJSHDdssFKJH";NSString *str2 =[str1 lowercaseString]; //转换小写NSString *str3 =[str1 uppercaseString]; //转换大写
判断有没有 前缀,后缀
NSString *str =@"www.baidu.com";BOOL hasPreFix =[str hasPreFix:@"www"];//判断前缀BOOL hasSuffix =[str hasSuffix:@"com"];//判断前缀
判断两个字符串是否相同
if ([str1 isEqualToString str2])
分割字符串
NSString *str =@"www.baidu.com";NSArray *arrays =[str componentsSeparatedByString:@"."];for(NSString *str in strArray){ NSLog(@"str =%@",str);}
将字符串拆分为每一个字符
for(int i=0; i<[str length];i++){ NSLog(@"%c",[str characterAtIndex:i]);}
//查找
NSString *str =@"ad df grdg awe sd ";//查找指定字符串的位置NSRange range1 = [str rangeOfString:@"ad"];NSLog(@"range1.location:@ld range1.length:%ld",range1.location ,range1.length);
替换
NSString *str =@"ad df grdg awe sd ";//从第0位置开始 ,替换2个字符 替换为 你好NSString *str2 =[str stringByReplacingCharactersInRange:NSMakeRange(0,2)withString:@"你好"];
读取文件:1.网络文件 2.本地文件
NSString *str =@"www.baidu.com"//网络路径:NSURL *httpURL = [NSURL URLWithString:str];//本地路径NSURL *fileURL = [NSURL fileURLWithPath:str];//读取网络文件NSString *httpStr =[NSString stringWithContentsOfURL:httpURL encoding:NSUTF8StringEncoding error:nil];//读取本地文件NSString *fileStr =[NSString stringWithContentsOfFile:@"/Users/Visitor/Desktop/text.txt"encoding:NSUTF8StringEncoding error:nil];//写入文件NSString *str =@"hello world";BOOL isOK = [str writeToFile:@"/Users/Visitor/Desktop/demo.txt" atomically:YES encoding:NSUTF8StringEncoding error :nil];
- 可变字符串 NSMutableString
可变字符串是字符串的子类
NSMutableString *str = [[NSMutableString alloc] initWithCapicity:10];//不能用 str = @"hello"; 会被提示错误。[str setString :@"hello"];
1.追加字符串(只有可变字符串才能用)
[str appendingString @" world"];int a =10;[str appendFormat:@" - %d",a];
2.替换字符串(只有可变字符串才能用)
NSRange range = [str rangeOfString:@"world"];[str replaceCharactersInRange:range withString:@" 你好!"]; ```插入字符串 ```[str insertString :@"A " atIndex:6]; //在第6位中插入字符串 ```删除字符串 ```NSRange range = [str rangeOfString:@"world"];[str deleteCharactersInRange:range];
知识点1:比较两个字符串大小
正确方法 isEqualToString (区分大小写,返回YES NO) 比较接收方和当作参数传递来的字符串
if(str1 isEqualToString str2 ) { NSLog(@“相等”); }else{ NSLog(@“不相等”); } compare 方法返回的结果有三种: str1 < str2 NSOrderedAscending 升序 123456 1 str1 > str2 NSOrderedDescending 降序 654321 -1 str1 == str2 NSOrderedSame 0NSLiteralSearch 进行完全比较 区分大小写 (默认)NSCaseInsensitiveSearch 不区分大小写NSNumericSearch 字符个数扩展: ( 比较原则: 取出每个字符的ASCII码值比较ASCII 码值大小) 实例程序:NSString *str1 = @“abc”; //97 NSString *str2 = @“bcd”; // 98 //知识点: 如果不是一个类 后面不用加 * 号 NSComparisonResult result =[ str1 compare:str2 options:NSCaseInsensitiveSearch]; //判断 switch (result) case NSOrderedAscending: NSLog(@“str1>str2 升序”); break; case NSOrderedDescending: NSLog(@“str1>str2 降序”); break; case NSOrderedSame: NSLog(@“相同”); break; default; 实例程序: NSString *str1 = @“abc” //存放地址 常量区 NSString *str3 = [NSString stringWithFormat :@“abc”]; // 存放地址 堆区 //地址的比较 // “==”不能判断字符串是否相等 比的是地址 地址一样就相等,不管内容 if(str1 ==str3){ //错误方法 NSLog(@“相等”); }else{ NSLog(@“不相等”); }
知识点2:NSString 的前缀,后缀 检查和搜索
// [str hasPrefix:@“要检测的内容” ]; [str hasSuffix:@“要检测的内容”]//如何检测这个字符串是否是一个网址//检测一个字符串的前缀是否是以: http:// 或者 https:// 开头 实例程序: NSString *url = @“http://www.baidu.com”; if([url hasPrefix:@“http://”] | | [url hasPrefix:@“https://”]){ NSLog(@“是一个网址”); }else{ NSLog(@“不是一个网址”);}
知识点3: 字符串的查找
//查找某个字符串在另一个字符串中首次出现的位置 1 rangOfString 2//range 结构体变量 NSRange 结构体别名//range.location 表示字符串首次出现的位置//range.length 字符串出现的长度 (实质上就是子字符串的长度) 实例程序: NSString *str1 = @“abcdefgh”; NSString *str2 = @“cd”; NSRange range = [str1 rangeOfString : str2 ]; NSLog(@“%lu,%lu”,length.location,range.length); //如果查找到了 返回 结果 2 2 //如果查找不到 , 返回的信息 location 返回特别大的数(NSNotFound) 最大的long 整形的数, length 返回 0
知识点4: 字符串的截取
012345NSString *str1 = @“abcdefgh”//从某一位开始截取后面的字符串NSString *str =[str1 substringFromIndex:2]; //从第二位开始截取字符串、【包含第二位】cdefgh//从开头截取到某一位NSString *str =[str1 substringToIndex:5];//从开头截取到第5位 [ 不包含 第五位] abcde//截取一个范围 rangeNSRange range ={3,4};NSString *str = [str1 substringWithRange:range]; 结果:defg for(MIOOrderInfo *order in self.subs) { //商品id NSString *pid = order.pid; //男.女 鞋 NSString *poid =order.poid; //鞋码42 NSString *pvid =order.pvid; //购买数量 NSString *pquantity = order.pquantity; NSString *orderInfo =[NSString stringWithFormat:@"%@:%@:%@:%@",pid,poid,pvid,pquantity]; NSLog(@"%@",orderInfo); str = [str stringByAppendingFormat:@";%@",orderInfo]; } NSString *order_info =[str substringFromIndex:1]; NSLog(@"str = %@",order_info);
3.分隔字符串
NSString*string =@"sdfsfsfsAdfsdf";NSArray *array = [string componentsSeparatedByString:@"A"]; //从字符A中分隔成2个元素的数组NSLog(@"array:%@",array); //结果是adfsfsfs和dfsdf
阅读全文
0 0
- Oc字符串
- OC字符串
- OC字符串
- OC 字符串
- oc字符串
- OC 字符串
- OC--字符串
- OC字符串
- OC 字符串
- OC字符串
- OC字符串
- OC 字符串
- OC-字符串
- OC 字符串
- Oc 字符串
- OC 字符串
- OC字典 OC数组 OC字符串
- oc 字符串操作
- neo4j小结一
- Android性能优化--listview 优化机制
- 2-1字典序问题 算法
- 2014年蓝桥杯之李白打酒
- 博客搬家声明:csdn博客 到 博客园
- Oc 字符串
- easydss的一种简单的实现hls流量统计的方法
- Vuejs介绍(一)
- 用jquery的ajax方法实现三级联动
- 数组map方法的用法
- UVa437 两种做法(DAG上的动态规划)
- codeforces 859B
- java 浅拷贝和深拷贝
- Oc GDataXML(DOM)解析表格