博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C 笔记 字符串操作
阅读量:6348 次
发布时间:2019-06-22

本文共 5640 字,大约阅读时间需要 18 分钟。

  这次总结下OC里一些对字符串的一些操作。

  创建字符串对象时,会创建一个内容不可更改的对象,称为不可变对象。可以使用NSString类处理不可变字符串。你经常需要处理字符串并更改字符串中的字符。例如,可能希望从字符串中删除一些字符,或对字符串执行搜索替换操作。这种类型的字符串是使用NSMutableString类处理的。

1 // 2 //  main.m 3 //  Number_String_List_15 4 // 5 //  Created by SeanAstin on 15/12/30. 6 //  Copyright © 2015年 SeanAstin. All rights reserved. 7 // 8  9 #import 
10 11 int main(int argc, const char * argv[]) {12 @autoreleasepool {13 NSString *str1 = @"This is string A";14 NSString *str2 = @"This is string B";15 NSString *res;16 NSComparisonResult compareResult;17 18 //计算字符串中的值19 NSLog(@"Length of str1: %lu",[str1 length]);20 21 //将一个字符串复制到另一个字符串22 res = [NSString stringWithString:str1];23 NSLog(@"copy: %@",res);24 25 //将一个字符串复制到另一个字符串的末尾26 str2 = [str1 stringByAppendingString:str1];27 NSLog(@"Concatentation: %@",str2);28 29 //验证两个字符串是否相等30 if([str1 isEqualToString:res] == YES)31 NSLog(@"str1 == res");32 else33 NSLog(@"str1 != res");34 35 //验证一个字符串是否小于、等于或大于另一个字符串36 compareResult = [str1 compare:str2];37 if(compareResult == NSOrderedAscending)38 NSLog(@"str1 < str2");39 else if(compareResult == NSOrderedSame)40 NSLog(@"str1 == str2");41 else//必须是NSorderedDescending42 NSLog(@"str1 > str2");43 44 //将字符串转换为大写45 res = [str1 uppercaseString];46 NSLog(@"Uppercase conversion: %s",[res UTF8String]);47 48 //将字符串转换为小写49 res = [str1 lowercaseString];50 NSLog(@"Lowercase conversion: %@",res);51 }52 return 0;53 }

 

 

1 // 2 //  main.m 3 //  Number_String_List_15 4 // 5 //  Created by SeanAstin on 15/12/30. 6 //  Copyright © 2015年 SeanAstin. All rights reserved. 7 // 8  9 #import 
10 11 int main(int argc, const char * argv[]) {12 @autoreleasepool {13 NSString *str1 = @"This is string A";14 NSString *str2 = @"This is string B";15 NSString *res;16 NSRange subRange;17 18 //从字符串中提取前3个字符19 res = [str1 substringToIndex:3];20 NSLog(@"First 3 chars of str1: %@",res);21 22 //提取从索引5开始直到结尾的子字符串23 res = [str1 substringFromIndex:5];24 NSLog(@"Chars from index 5 of str1: %@",res);25 26 //提取从索引8开始索引到13的子字符串(6个字符)27 res = [[str1 substringFromIndex:8] substringToIndex:6];28 NSLog(@"Chars from index 8 through 13: %@",res);29 30 //更简单的方法31 res = [str1 substringWithRange:NSMakeRange(8, 6)];32 NSLog(@"Chars from index 8 through 13: %@",res);33 34 //从另一个字符串中查找一个字符串35 subRange = [str1 rangeOfString:@"string A"];36 NSLog(@"String is at index %lu, length is %lu",subRange.location,subRange.length);37 subRange = [str1 rangeOfString:@"string B"];38 if(subRange.location == NSNotFound)39 NSLog(@"String not found");40 else41 NSLog(@"String is at index %lu, length is %lu",subRange.location,subRange.length);42 43 }44 return 0;45 }

 

  NSMutableString类可以用来创建可以更改字符的字符串对象。因为是 NSString类的子类,所以可以使用NSString类的所有方法。

  在讲述可变于不可变字符串对象时,我们谈到了更改字符串中的实际字符。任意一个可变或不可变字符串对象在程序执行期间,总是可以被设为完全不同的字符串对象的。

1 // 2 //  main.m 3 //  Number_String_List_15 4 // 5 //  Created by SeanAstin on 15/12/30. 6 //  Copyright © 2015年 SeanAstin. All rights reserved. 7 // 8  9 #import 
10 11 int main(int argc, const char * argv[]) {12 @autoreleasepool {13 NSString *str1 = @"This is string A";14 NSString *search,*replace;15 NSMutableString *mstr;16 NSRange substr;17 18 //从不可变字符串创建可变字符串19 20 mstr = [NSMutableString stringWithString:str1];21 NSLog(@"%@",mstr);22 23 //插入字符24 [mstr insertString: @" mutable" atIndex:7];25 NSLog(@"%@",mstr);26 27 //插入末尾进行有效拼接28 [mstr insertString:@" and string B" atIndex:[mstr length]];29 NSLog(@"%@",mstr);30 31 //直接使用appendString32 [mstr appendString:@" and string C"];33 NSLog(@"%@",mstr);34 35 //根据范围删除子字符串36 [mstr deleteCharactersInRange:NSMakeRange(16, 13)];37 NSLog(@"%@",mstr);38 39 //查找然后将其删除40 substr = [mstr rangeOfString:@"string B and "];41 if(substr.location != NSNotFound){42 [mstr deleteCharactersInRange:substr];43 NSLog(@"%@",mstr);44 }45 46 //直接设置为可变的字符串47 [mstr setString:@"This is string A"];48 NSLog(@"%@",mstr);49 50 //替换一些字符51 [mstr replaceCharactersInRange:NSMakeRange(8, 8) withString:@"a mutable string"];52 NSLog(@"%@",mstr);53 54 //查找和替换55 search = @"This is";56 replace = @"An example";57 substr = [mstr rangeOfString: search];58 if(substr.location != NSNotFound){59 [mstr replaceCharactersInRange:substr withString:replace];60 NSLog(@"%@",mstr);61 }62 63 //查找和替换所有匹配项64 search = @"a";65 replace = @"X";66 substr = [mstr rangeOfString:search];67 while(substr.location != NSNotFound){68 [mstr replaceCharactersInRange:substr withString:replace];69 substr = [mstr rangeOfString:search];70 71 }72 NSLog(@"%@",mstr);73 }74 return 0;75 }

 

转载于:https://www.cnblogs.com/SeanAstin/p/5092002.html

你可能感兴趣的文章
OTP 22.0 RC3 发布,Erlang 编写的应用服务器
查看>>
D语言/DLang 2.085.1 发布,修复性迭代
查看>>
感觉JVM的默认异常处理不够好,既然不好那我们就自己来处理异常呗!那么如何自己处理异常呢?...
查看>>
Java 基础 之 算数运算符
查看>>
Windows下配置安装Git(二)
查看>>
一个最简单的基于Android SearchView的搜索框
查看>>
铁路开通WiFi“钱景”不明
查看>>
Nutanix领衔的超融合能带来新存储黄金时代吗?
查看>>
Facebook申请专利 或让好友及陌生人相互拼车
查看>>
电力“十三五”规划:地面光伏与分布式的分水岭
查看>>
美联社再告FBI:要求公开请黑客解锁iPhone花费
查看>>
三星电子出售希捷和夏普等四家公司股份
查看>>
任志远:当云计算遇上混合云
查看>>
思科联手发那科 用物联网技术打造无人工厂
查看>>
智慧城市首要在政府利用大数据的智慧
查看>>
2015年物联网行业:巨头展开专利大战
查看>>
以自动化测试撬动遗留系统
查看>>
网络安全初创公司存活之道
查看>>
《图解CSS3:核心技术与案例实战》——1.2节浏览器对CSS3的支持状况
查看>>
《Android应用开发》——2.4节应用类
查看>>