Objective-c学习笔记04——NSString

Objective-C可以开发apple家族系列产品的软件,这里记录成笔记方便日后复习:

NSString简介

NSString是一个对象类型。NSString是NSObject(Cocoa Foundation的基础对象)的子类,所以具有NSObject的所有特性,NSString对象由unichar字符组成。unichar字符是符合Unicode标准的多字节字符。而且不别担心字符串的内部表示,因为NSString类已经自动处理了。

NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT.@是Cocoa元素的前缀,很多地方我们会看到,比如接下来…

一、NSString

1 创建NSString对象
①、此方法不需要手动释放内存。

  
  
  1. NSString*aString =@"This is String"; //需要在头部放一个@符号

②、此方法需要手动释放内存

  
  
  1. NSString*aString =[[NSString alloc] initWithFormat:@"This is String"];

2 使用NSString对象

  
  
  1. NSString *aString = @"Programming is fun";
  2. NSLog(@"%@", aString);

3 释放NSString

  
  
  1. [aString release];

3 快速使用一个NSString

  
  
  1. NSLog([NSString stringWithFormat:@"一个NS字符串"]);
这种快速方法返回的是一个return为1,autorelease的对象,不需要操心它的内存管理

4 NSString常用方法

  
  
  1. NSString * str1 = @"This is string A";
  2. NSString * str2 = @"This is string B";
  3. NSString * res;
  4. NSComparisonResult compareResult;
  5.  
  6. //计算字符串中的字符
  7. NSLog(@"Length of str1: %lu", [str1 length]);
  8.  
  9. //将一个字符串复制到另一个字符串
  10. res = [NSString stringWithString: str1];
  11. NSLog(@"Copy: %@", res);
  12.  
  13. //将一个字符串复制到另一个字符串的末尾
  14. str2 = [str1 stringByAppendingString: str2];
  15. NSLog(@"Concatentation: %@", str2);
  16.  
  17. //验证两个字符串是否相等
  18. if ([str1 isEqualToString: res] == YES) {
  19. NSLog(@"str1 == res");
  20. }else{
  21. NSLog(@"str2 @= res");
  22. }
  23.  
  24. //验证一个字符串是否小于、等于或者大于另一个字符串
  25. compareResult = [str1 compare: str2];
  26. if (compareResult < NSOrderedAscending) {
  27. NSLog(@"str1 < str2");
  28. }else if (compareResult == NSOrderedSame){
  29. NSLog(@"str1 = str2");
  30. }else{
  31. NSLog(@"str1 > str2");
  32. }
  33.  
  34. //将字符串转换为大写
  35. res = [str1 uppercaseString];
  36. NSLog(@"UppercaseString conversion: %s", [res UTF8String]);
  37.  
  38. //将字符串转换为小写
  39. res = [str1 lowercaseString];
  40. NSLog(@"LowercaseString conversion: %s", res);
  41. NSLog(@"Original string: %@", str1);
  42.  
  43. //(1)截取字符串”20 | http://www.baidu.com”中,”|”字符前面和后面的数据,分别输出
  44. NSString * str1 = @"20|http://www.baidu.com";
  45. NSArray * str2 = [str1 componentsSeparatedByString:@"|"]; //使用 | 分割字符串为数组
  46. for (str1 in str2) { //遍历输出
  47. NSLog(@"obj = %@", str1);
  48. }
  49.  
  50. //(2)从字符串@“aBcD_EfGk”中取出EfGk,并让大写字母转成小写,输出efgk
  51. NSString * str3 = @"aBcD_EfGk";
  52. NSRange range = {5, 4}; //定义rang,开始位置为5,获取4个
  53. NSString * str4 = [str3 substringWithRange:range]; //获取EfGk
  54. NSLog(@"%@", [str4 lowercaseString]); //输出,并使用 lowercaseString 转换成小写
  55.  
  56. //(3)给定一个字符串,判断字符串中是否含有“png”,如果有就删除。
  57. NSString * str5 = @"skejf_png_ksd_ppng——————png";
  58. NSString * str6 = [str5 stringByReplacingOccurrencesOfString:@"png" withString:@""]; //替换png
  59. NSLog(@"%@", str6); //打印
  60.  
  61. //(4)如何将敏感字变成**
  62. NSString * str7 = @"The name iTunes use222s when it sorts by artist na111me";
  63. NSString * str8 = @"*"; //定义替换的内容
  64. NSString * str9 = @"12"; //定义被替换的内容
  65. NSCharacterSet *CharacterSet = [NSCharacterSet characterSetWithCharactersInString:str9]; //替换
  66. // 数组转字符串
  67. NSLog(@"%@", [[str7 componentsSeparatedByCharactersInSet:CharacterSet] componentsJoinedByString:str8]);

5 NSMutableString常用方法

  
  
  1. //capacity 容量,指定存储空间效率高。如果字符串长度大于10,则会自动增加存储空间。
  2. NSMutableString * str1 = [[NSMutableString alloc] initWithCapacity:10];
  3.  
  4. //setString 设置字符串
  5. [str1 setString:@"apple 1234"];
  6.  
  7. //appendString 拼接字符串
  8. [str1 appendString:@"567"];
  9.  
  10. //appendFormat 拼接格式字符串
  11. [str1 appendFormat:@" age = %i", 888];
  12.  
  13. //replaceCharactersInRange:range withString:id //根据范围替换字符串
  14. //找到范围
  15. NSRange range = [str1 rangeOfString:@"ple"];
  16. //开始替换
  17. [str1 replaceCharactersInRange:range withString:@"*"];
  18.  
  19. //insertString:< #(NSString *)#> atIndex:< #(NSUInteger)#>
  20. //在指定索引后面插入字符串
  21. [str1 insertString:@"HHH" atIndex:3];
  22.  
  23. //deleteCharactersInRange:< #(NSRange)#>
  24. //删除指定范围字符串
  25. [str1 deleteCharactersInRange:range];
  26.  
  27. NSLog(@"%@", str1);
  28. [str1 release];

二、Description方法:

NSLog(@”%@”, [对象 description]),利用这种方法是可以打印对象的,但是默认是显示的类名和对象在内存中的地址。而我们需要更详细的内容,那么可以重新定义Description方法。

  
  
  1. //方法实现
  2. - (NSString *) description {
  3. return [NSString stringWithFormat: @"name = %@, age = %i, height = %i, width = %i", _name, _age, _height, _width];
  4. }
  5.  
  6. //打印(u 是创建的对象)
  7. NSLog(@"%@", [u description]);
声明: 本文采用  BY-NC-SA 协议进行授权. 转载请注明转自:  Objective-c学习笔记04——NSString
此条目发表在 objective-c分类目录,贴了 NSStringobjective-c标签。将 固定链接加入收藏夹。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值