NSString 常用处理方法

                                NSString 常用处理方法

1.初始化方法

  1. - (instancetype)init; // 基本的初始化方法,返回值类型表示 当前类;  

  1. - (instancetype)initWithString:(NSString *)aString; // 用字符串给字符串初始化,(NSString *)aString 用来指定字符串;  

  1. - (instancetype)initWithFormat:(NSString *)format, ... ; // 用NSLog()格式进行字符串初始化,可用于字符串的拼接(NSString *)format, ... 用来指定占位符  

2. 便利构造器

每个系统初始化方法都有对应的便利构造器方法,便利构造器有进行内存优化,在MRC模式下不用对便利构造器初始化的对象进行release或autorelease操作,便利构造器都是类方法(即 加号方法);

  1. + (instancetype)string;  

  1. + (instancetype)stringWithString:(NSString *)aString;  

  1. + (instancetype)stringWithFormat:(NSString *)format,, ...;  

3. 求字符串长度方法
  1. - (NSUInteger)length; // 返回值类型为无符号长整形(64位系统), 用%lu打印;  

4.判断

1).判断字符串是否以指定字符串开始(即 前缀)

  1. - (BOOL)hasPrefix:(NSString *)aString; //返回值类型为BOOL型,常作判断条件使用;  

2).判断字符串是否以指定字符串结束

  1. - (BOOL)hasSuffix:(NSString *)aString; // 同上  

5.比较

1).比较字符串是否相等

  1. - (BOOL)isEqualToString:(NSString *)aString; // 如题, 返回值类型为BOOL型;  
2).比较字符串大小

  1. - (NSComparisonResult)compare:(NSString *)aString; // 如题,返回值类型是枚举,如下,小于返回-1,等于返回0,大于返回1;  


  1. enum {    NSOrderedAscending = -1,    NSOrderedSame,    NSOrderedDescending }; typedef NSInteger NSComparisonResult;   


3).不考虑大小写比较大小
  1. - (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString; // 如题,返回值类型同上;  

6. 搜索字符串位置范围

  1. - (NSRange)rangeOfString:(NSString *)aString; // 搜索参数字符串在 调用这个方法的字符串 里的位置,返回值类型为结构体,分别是位置和长度,如下; 调用时要创建一个NSRange类型的对象进行接收,NSRange不是指针变量,创建时不要加"*", 如果搜索不到会返回NSNotFound ,是一个很大的数;  


  1. typedef struct _NSRange {       NSUInteger location;       NSUInteger length; } NSRange;   

7.字符串的截取(获取字符串)

  1. - (NSString *)substringToIndex:(NSUInteger)anIndex; // 从字符串开头一直截取到指定位置,返回类型为(NSString *),(因为是不可变字符串)需要创建个对象进行接收;  

  1. - (NSString *)substringWithRange:(NSRange)aRange; // 根据指定范围返回子字符串,返回类型同上;  

  1. - (NSString *)substringFromIndex:(NSUInteger)anIndex; // 从指定位置开始截取字符串直到结束,  返回类型同上;  

8. 字符串的拼接 

  1. - (NSString *)stringByAppendingString:(NSString *)aString; // 将参数字符串拼接到调用这个方法字符串的后面,并返回一个新字符串,返回值类型同上;  


  1. - (NSString *)stringByAppendingFormat:(NSString *)format, ...; // 将参数字符串以NSLog()格式拼接到调用这个方法的字符串后面,并返回一个新字符串,返回值类型同上;  

还可以重新用initWithFormat或stringWithFormat初始化创建一个字符串.

9.字符串替换

  1. - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement; // 用后面的参数字符串替换前面的参数字符串,返回一个新字符串.举个栗子  

  1. NSString *str = @"我宣你";  
  2.         NSString *str2 = [str stringByReplacingOccurrencesOfString:@"宣" withString:@"恨"];  
  3.         NSLog(@"%@", str2); // 会打印出"我恨你";  

  1. - (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement;将后面的字符串替换掉调用方法字符串的某个位置范围,并返回一个新的字符串;再举个栗子;  

  1. NSString *str = @"我宣你";  
  2.         NSString *str2 = [str stringByReplacingCharactersInRange:NSMakeRange(11) withString:@"狠"];  
  3.         NSLog(@"%@", str2); // 又是一个悲伤的故事  


10. 字符串和数值类型转换

太简单了不想打 - (要转换成的类型)要转换的类型Value;  // 就行,这是把字符串转换成其他类型(有double,float,int,integer,longlong,bool);

将其他类型转换成字符串.用stringWithFormat初始化创建一个即可;

11.大小写转换

  1. - (NSString *)lowercaseString; //全部转换成小写, 并返回一个新字符串  
  1. - (NSString *)uppercaseString;// 全部转换成大写,并返回一个新字符串;  

 

以上返回值类型是NSString *的为不可变字符串;

不可变字符串的修改操作本质是获得一个新字符串; 

修改方法都已string开头;

可变字符串NSMutableString *继承与NSString,也可以调用以上方法但原字符串不发生改变;

12. 初始化同1.;便利构造器同2.   ;

13.拼接字符串

  1. - (void)appendString:(NSString *)aString; // 在原字符串后面拼接参数字符串;  

  1. - (void)appendFormat:(NSString *)format ...; // 原字符串后面用NSLog()格式拼接参数字符串;  

14.插入字符串

  1. - (void)insertString:(NSString *)aString atIndex:(NSUInteger)anIndex; // 在指定位置插入参数字符串;  

15.删除字符串

  1. - (void)deleteCharactersInRange:(NSRange)aRange; // 删除指定位置范围的字符串;  



以后的学习,还会涉及更多的字符串处理方法;

以上是基本基础的字符串处理方法;


16. 截取字符串,并将截取的字符串存放在数组里

  1. - (NSArray *)componentsSeparatedByString:(NSString *)separator; //从参数字符串处(参数字符串除外)截取,把截取后的子字符串存到一个数组里;返回值类型:数组;有多少个参数字符串就截成多少 + 1个元素(参数字符串在开头结尾的除外);  


17. 获取文件里的字符串

  1. - (instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error; //第一个参数是文件路径,第二个参数是枚举,表示是字符编码,最后的参数是错误信息(没用过不知道咋用,一般我是填一个nil),返回一个当前类型;  

作用:获取.txt文件里的字符串, 以及等等``````以下是枚举,常用第四个:UTF-8

  1. enum {  
  2.     NSASCIIStringEncoding = 1,      /* 0..127 only */  
  3.     NSNEXTSTEPStringEncoding = 2,  
  4.     NSJapaneseEUCStringEncoding = 3,  
  5.     NSUTF8StringEncoding = 4,  
  6.     NSISOLatin1StringEncoding = 5,  
  7.     NSSymbolStringEncoding = 6,  
  8.     NSNonLossyASCIIStringEncoding = 7,  
  9.     NSShiftJISStringEncoding = 8,          /* kCFStringEncodingDOSJapanese */  
  10.     NSISOLatin2StringEncoding = 9,  
  11.     NSUnicodeStringEncoding = 10,  
  12.     NSWindowsCP1251StringEncoding = 11,    /* Cyrillic; same as AdobeStandardCyrillic */  
  13.     NSWindowsCP1252StringEncoding = 12,    /* WinLatin1 */  
  14.     NSWindowsCP1253StringEncoding = 13,    /* Greek */  
  15.     NSWindowsCP1254StringEncoding = 14,    /* Turkish */  
  16.     NSWindowsCP1250StringEncoding = 15,    /* WinLatin2 */  
  17.     NSISO2022JPStringEncoding = 21,        /* ISO 2022 Japanese encoding for e-mail */  
  18.     NSMacOSRomanStringEncoding = 30,  
  19.   
  20.     NSUTF16StringEncoding = NSUnicodeStringEncoding,      /* An alias for NSUnicodeStringEncoding */  
  21.   
  22.     NSUTF16BigEndianStringEncoding = 0x90000100,          /* NSUTF16StringEncoding encoding with explicit endianness specified */  
  23.     NSUTF16LittleEndianStringEncoding = 0x94000100,       /* NSUTF16StringEncoding encoding with explicit endianness specified */  
  24.   
  25.     NSUTF32StringEncoding = 0x8c000100,                     
  26.     NSUTF32BigEndianStringEncoding = 0x98000100,          /* NSUTF32StringEncoding encoding with explicit endianness specified */  
  27.     NSUTF32LittleEndianStringEncoding = 0x9c000100        /* NSUTF32StringEncoding encoding with explicit endianness specified */  
  28. };  
  29. typedef NSUInteger NSStringEncoding;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值