1.初始化方法
- - (instancetype)init; // 基本的初始化方法,返回值类型表示 当前类;
- - (instancetype)initWithString:(NSString *)aString; // 用字符串给字符串初始化,(NSString *)aString 用来指定字符串;
- - (instancetype)initWithFormat:(NSString *)format, ... ; // 用NSLog()格式进行字符串初始化,可用于字符串的拼接(NSString *)format, ... 用来指定占位符
2. 便利构造器
每个系统初始化方法都有对应的便利构造器方法,便利构造器有进行内存优化,在MRC模式下不用对便利构造器初始化的对象进行release或autorelease操作,便利构造器都是类方法(即 加号方法);
- + (instancetype)string;
- + (instancetype)stringWithString:(NSString *)aString;
- + (instancetype)stringWithFormat:(NSString *)format,, ...;
3. 求字符串长度方法
- - (NSUInteger)length; // 返回值类型为无符号长整形(64位系统), 用%lu打印;
4.判断
1).判断字符串是否以指定字符串开始(即 前缀)
- - (BOOL)hasPrefix:(NSString *)aString; //返回值类型为BOOL型,常作判断条件使用;
2).判断字符串是否以指定字符串结束
- - (BOOL)hasSuffix:(NSString *)aString; // 同上
5.比较
1).比较字符串是否相等
- - (BOOL)isEqualToString:(NSString *)aString; // 如题, 返回值类型为BOOL型;
- - (NSComparisonResult)compare:(NSString *)aString; // 如题,返回值类型是枚举,如下,小于返回-1,等于返回0,大于返回1;
- enum { NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending }; typedef NSInteger NSComparisonResult;
3).不考虑大小写比较大小
- - (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString; // 如题,返回值类型同上;
6. 搜索字符串位置范围
- - (NSRange)rangeOfString:(NSString *)aString; // 搜索参数字符串在 调用这个方法的字符串 里的位置,返回值类型为结构体,分别是位置和长度,如下; 调用时要创建一个NSRange类型的对象进行接收,NSRange不是指针变量,创建时不要加"*", 如果搜索不到会返回NSNotFound ,是一个很大的数;
- typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange;
7.字符串的截取(获取字符串)
- - (NSString *)substringToIndex:(NSUInteger)anIndex; // 从字符串开头一直截取到指定位置,返回类型为(NSString *),(因为是不可变字符串)需要创建个对象进行接收;
- - (NSString *)substringWithRange:(NSRange)aRange; // 根据指定范围返回子字符串,返回类型同上;
- - (NSString *)substringFromIndex:(NSUInteger)anIndex; // 从指定位置开始截取字符串直到结束, 返回类型同上;
8. 字符串的拼接
- - (NSString *)stringByAppendingString:(NSString *)aString; // 将参数字符串拼接到调用这个方法字符串的后面,并返回一个新字符串,返回值类型同上;
- - (NSString *)stringByAppendingFormat:(NSString *)format, ...; // 将参数字符串以NSLog()格式拼接到调用这个方法的字符串后面,并返回一个新字符串,返回值类型同上;
还可以重新用initWithFormat或stringWithFormat初始化创建一个字符串.
9.字符串替换
- - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement; // 用后面的参数字符串替换前面的参数字符串,返回一个新字符串.举个栗子
- NSString *str = @"我宣你";
- NSString *str2 = [str stringByReplacingOccurrencesOfString:@"宣" withString:@"恨"];
- NSLog(@"%@", str2); // 会打印出"我恨你";
- - (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement;将后面的字符串替换掉调用方法字符串的某个位置范围,并返回一个新的字符串;再举个栗子;
- NSString *str = @"我宣你";
- NSString *str2 = [str stringByReplacingCharactersInRange:NSMakeRange(1, 1) withString:@"狠"];
- NSLog(@"%@", str2); // 又是一个悲伤的故事
10. 字符串和数值类型转换
太简单了不想打 - (要转换成的类型)要转换的类型Value; // 就行,这是把字符串转换成其他类型(有double,float,int,integer,longlong,bool);
将其他类型转换成字符串.用stringWithFormat初始化创建一个即可;
11.大小写转换
- - (NSString *)lowercaseString; //全部转换成小写, 并返回一个新字符串
- - (NSString *)uppercaseString;// 全部转换成大写,并返回一个新字符串;
不可变字符串的修改操作本质是获得一个新字符串;
修改方法都已string开头;
可变字符串NSMutableString *继承与NSString,也可以调用以上方法但原字符串不发生改变;
12. 初始化同1.;便利构造器同2. ;
13.拼接字符串
- - (void)appendString:(NSString *)aString; // 在原字符串后面拼接参数字符串;
- - (void)appendFormat:(NSString *)format ...; // 原字符串后面用NSLog()格式拼接参数字符串;
14.插入字符串
- - (void)insertString:(NSString *)aString atIndex:(NSUInteger)anIndex; // 在指定位置插入参数字符串;
15.删除字符串
- - (void)deleteCharactersInRange:(NSRange)aRange; // 删除指定位置范围的字符串;
以后的学习,还会涉及更多的字符串处理方法;
以上是基本基础的字符串处理方法;
16. 截取字符串,并将截取的字符串存放在数组里
- - (NSArray *)componentsSeparatedByString:(NSString *)separator; //从参数字符串处(参数字符串除外)截取,把截取后的子字符串存到一个数组里;返回值类型:数组;有多少个参数字符串就截成多少 + 1个元素(参数字符串在开头结尾的除外);
17. 获取文件里的字符串
- - (instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error; //第一个参数是文件路径,第二个参数是枚举,表示是字符编码,最后的参数是错误信息(没用过不知道咋用,一般我是填一个nil),返回一个当前类型;
作用:获取.txt文件里的字符串, 以及等等``````以下是枚举,常用第四个:UTF-8
- enum {
- NSASCIIStringEncoding = 1, /* 0..127 only */
- NSNEXTSTEPStringEncoding = 2,
- NSJapaneseEUCStringEncoding = 3,
- NSUTF8StringEncoding = 4,
- NSISOLatin1StringEncoding = 5,
- NSSymbolStringEncoding = 6,
- NSNonLossyASCIIStringEncoding = 7,
- NSShiftJISStringEncoding = 8, /* kCFStringEncodingDOSJapanese */
- NSISOLatin2StringEncoding = 9,
- NSUnicodeStringEncoding = 10,
- NSWindowsCP1251StringEncoding = 11, /* Cyrillic; same as AdobeStandardCyrillic */
- NSWindowsCP1252StringEncoding = 12, /* WinLatin1 */
- NSWindowsCP1253StringEncoding = 13, /* Greek */
- NSWindowsCP1254StringEncoding = 14, /* Turkish */
- NSWindowsCP1250StringEncoding = 15, /* WinLatin2 */
- NSISO2022JPStringEncoding = 21, /* ISO 2022 Japanese encoding for e-mail */
- NSMacOSRomanStringEncoding = 30,
- NSUTF16StringEncoding = NSUnicodeStringEncoding, /* An alias for NSUnicodeStringEncoding */
- NSUTF16BigEndianStringEncoding = 0x90000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
- NSUTF16LittleEndianStringEncoding = 0x94000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
- NSUTF32StringEncoding = 0x8c000100,
- NSUTF32BigEndianStringEncoding = 0x98000100, /* NSUTF32StringEncoding encoding with explicit endianness specified */
- NSUTF32LittleEndianStringEncoding = 0x9c000100 /* NSUTF32StringEncoding encoding with explicit endianness specified */
- };
- typedef NSUInteger NSStringEncoding;