Objective-C之字符串对象
2018-01-01 17:57
337 查看
Foundation框架支持一个名为NSString的类,用于处理字符串对象。
注意 : 要使用OC语言创建一个字符串对象,需要在字符串开头放置一个@字符:
一 : NSLog
%@用来显示NSString。
结果:
当然值得注意的是 , %@可以显示其他的对象:
结果:
二 : 基本字符串操作①
结果:
二 : 基本字符串操作②
结果:
三 :可变字符串
NSMutableString 类可以用来创建可以更改字符的字符串对象,它继承自NSString
结果:
注意 : 要使用OC语言创建一个字符串对象,需要在字符串开头放置一个@字符:
@"Programming is fun"
一 : NSLog
%@用来显示NSString。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str = @"Programming is fun"; NSLog(@"%@",str); } return 0; }
结果:
当然值得注意的是 , %@可以显示其他的对象:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str = @"Programming is fun"; NSLog(@"%@",str); NSNumber *initNum = [NSNumber numberWithInteger:100]; NSLog(@"%@",initNum); } return 0; }
结果:
二 : 基本字符串操作①
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str1 = @"This is string A --"; NSString *str2 = @"This is string B"; NSString *res; NSComparisonResult compareResult; //计算字符串中的字符 NSLog(@"Length of str1 : %lu" , [str1 length]); //将一个字符串复制到另一个字符串(全部覆盖(擦掉覆盖)) res = [NSString stringWithString:str1]; NSLog(@"copy : %@", res); res = [NSString stringWithString:str2]; NSLog(@"copy : %@", res); //将一个字符串复制到另一个字符串的末尾(在str1后面加str2) str2 = [str1 stringByAppendingString:str2]; NSLog(@"Concatentation : %@" , str2); //验证2个字符串是否相等 if( [str1 isEqualToString: res] == YES){ NSLog(@" str1 == res "); }else{ res = [NSString stringWithString:str1]; if([str1 isEqualToString:res] == YES){ NSLog(@"str1 == res 2"); } } //验证一个字符串死否小于,等于或大于另一个字符串 compareResult = [str1 compare:str2]; if( compareResult == NSOrderedAscending ){ NSLog(@"str1 < str2"); }else if( compareResult == NSOrderedSame ){ NSLog(@"str1 == str2"); }else{ //NSOrderedDescending NSLog(@"str1 > str2"); } //将字符串转为大写(注意 : str1的大小写不变) res = [str1 uppercaseString]; NSLog(@"str1 : %@ , res : %@" , str1 , res); //将字符串转换成小写 res = [str1 lowercaseString]; NSLog(@"str1 : %@ , res : %@" , str1 , res); } return 0; }
结果:
二 : 基本字符串操作②
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str1 = @"This is string A --"; NSString *str2 = @"This is string B"; NSString *res; NSRange subRange; //从字符串中提取前3个字符 res = [str1 substringToIndex:3]; NSLog(@"First 3 chars of str1 : %@" , res); //提取从索引5开始直到结尾的子字符串 res = [str1 substringFromIndex:5]; NSLog(@"Chars from index 5 of str1 : %@", res); //提取从索引5开始到索引13的子字符串(6个字符) res = [[str1 substringFromIndex:8] substringToIndex:6]; NSLog(@"Chars from index 8 through 13 : %@" , res); //更简单的方法 提取从索引5开始到索引13的子字符串(6个字符) res = [str1 substringWithRange:NSMakeRange(8,6)]; NSLog(@"!! Chars from index 8 through 13 : %@" , res); //查找字符串 subRange = [str1 rangeOfString:@"string"]; NSLog(@"String is at index %lu ,length is %lu" , subRange.location , subRange.length); subRange = [str1 rangeOfString:@"string B"]; //没有找到 if( subRange.location == NSNotFound ){ NSLog(@"String not found"); } } return 0; }
结果:
三 :可变字符串
NSMutableString 类可以用来创建可以更改字符的字符串对象,它继承自NSString
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str1 = @"This is string A"; NSString *search , *replace; NSMutableString *mstr; NSRange substr; //从不可变字符串创建可变字符串 mstr = [NSMutableString stringWithString: str1]; NSLog(@"%@",mstr); //插入字符 [mstr insertString:@" Aonaufly" atIndex:7]; NSLog(@"%@",mstr); //插入末尾进行有效拼接 [mstr insertString:@" and string B" atIndex:[mstr length]]; NSLog(@"%@",mstr); //same [mstr appendString:@" and string C"]; NSLog(@"%@",mstr); //根据范围删除子字符串 [mstr deleteCharactersInRange: NSMakeRange(16,13)]; NSLog(@"%@",mstr); //查找然后将其删除 substr = [mstr rangeOfString:@"string B and "]; if( substr.location != NSNotFound ){ [mstr deleteCharactersInRange:substr]; NSLog(@"%@",mstr); } //直接设置为可变的字符串 [mstr setString:@"This is string A"]; NSLog(@"%@",mstr); //替换一些字符串 [mstr replaceCharactersInRange:NSMakeRange(8,8) withString:@"a mutable string"]; NSLog(@"%@",mstr); //查找和替换 search = @"This is"; replace = @"An example of"; substr = [mstr rangeOfString:search]; if(substr.location != NSNotFound){ [mstr replaceCharactersInRange: substr withString:replace]; NSLog(@"%@",mstr); } //查找和替换所有的匹配项 search = @"a"; replace = @"X"; substr = [mstr rangeOfString:search]; while (substr.location != NSNotFound) { [mstr replaceCharactersInRange:substr withString:replace]; substr = [mstr rangeOfString:search]; } NSLog(@"%@",mstr); } return 0; }
结果:
相关文章推荐
- Objective-C:OC的字符串、类与对象
- Objective-C使用静态方法创建字符串对象
- NSString与char*最大区别就是NSString是一个objective(父类)对象,而char*是一个有字节的数组。@+"字符串" 为objective-c NSString字符串常量的标准
- objective-c和java下解析对象类型和数组类型JSON字符串
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
- Objective-C中判断字符串是否包含其他字符串
- js内置对象(string字符串对象)
- Java将Json字符串转化为对象(包含list型变量)
- Android的数据处理:使用annotation实现JSON字符串解析为java对象
- Objective-c中对象的Copy、MutableCopy、浅拷贝、深拷贝
- Objective-C的字符串处理类NSString
- js将字符串转换成对象和数组
- json对象与json字符串之间的互转
- .net中实现运行时从字符串动态创建对象 (转)
- objective-c中的数字对象
- Json字符串与Java对象互转(使用json-lib类库)
- json字符串转json对象
- C语言 字符串和C++ string对象的相互转化
- Objective-c_Date 日期对象