NSString

一、字符串的截取

- (NSString *)substringFromIndex:(NSUInteger)from;  // 从index到字符串的结尾
- (NSString *)substringToIndex:(NSUInteger)to;     // 从字符串的开始到index
- (NSString *)substringWithRange:(NSRange)range;  //  截取range范围内的字符串

二、字符串的比较

//1.比较   *******
- (NSComparisonResult)compare:(NSString *)string;
//2.比较(指定字符串,条件)
- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;
//3.比较(指定字符串,条件,范围)
- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange;
//4.比较(指定字符串,条件,范围,本地化)
- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange locale:(nullable id)locale;
//5.比较 (忽略大小写) *******
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;

//6.本地化比较
- (NSComparisonResult)localizedCompare:(NSString *)string;
//7.本地化比较(不区分大小写)
- (NSComparisonResult)localizedCaseInsensitiveCompare:(NSString *)string;
//8.本地化比较(标准)
- (NSComparisonResult)localizedStandardCompare:(NSString *)string;

//9.判断两个字符串是否内容一致
- (BOOL)isEqualToString:(NSString *)aString; 

NSStringCompareOptions

NSCaseInsensitiveSearch 不区分大小写比较
NSLiteralSearch 区分大小写比较
NSBackwardsSearch 从字符串末尾开始搜索
NSAnchoredSearch 搜索限制范围的字符串
NSNumericSearch 按照字符串里的数字为依据,算出顺序
NSDiacriticInsensitiveSearch 忽略 "-" 符号的比较
NSWidthInsensitiveSearch 忽略字符串的长度,比较出结果
NSForcedOrderingSearch 忽略不区分大小写比较的选项
NSRegularExpressionSearch 只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:...方法

NSComparisonResult

NSOrderedAscending 升序 (左小右大)
NSOrderedSame 相同 (内容相同)
NSOrderedDescending 降序 (左大右小)

字符串搜索

//1.是否包含前缀(以str开头)
- (BOOL)hasPrefix:(NSString *)str;
//2.是否包含后缀(以str结尾)
- (BOOL)hasSuffix:(NSString *)str;
//3.获取公共前缀
- (NSString *)commonPrefixWithString:(NSString *)str options:(NSStringCompareOptions)mask;
//4.是否包含字符串
- (BOOL)containsString:(NSString *)str;
//5.本地化是否包含字符串(不区分大小写)
- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str;
//6.本地化是否包含字符串(标准)
- (BOOL)localizedStandardContainsString:(NSString *)str;
//7.本地化搜索字符串范围(标准)
- (NSRange)localizedStandardRangeOfString:(NSString *)str;

   //////////搜索字符串//////////
//8.搜索(指定字符串)
- (NSRange)rangeOfString:(NSString *)searchString;
//9.搜索(指定字符串,条件)
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;
//10.搜索(指定字符串,条件,范围)
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;
//11.搜索(指定字符串,条件,范围,本地化)
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(nullable NSLocale *)locale;

   //////////搜索字符集合//////////
//12.搜索(指定字符集合)
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet;
//13.搜索(指定字符集合,条件)
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet options:(NSStringCompareOptions)mask;
//14.搜索(指定字符集合,条件,范围)
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet options:(NSStringCompareOptions)mask range:(NSRange)searchRange;

//15.用字符串的字符编码指定索引查找位置
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
//16.用字符串的字符编码指定区域段查找位置
- (NSRange)rangeOfComposedCharacterSequencesForRange:(NSRange)range;

字符串接拼

- (NSString *)stringByAppendingString:(NSString *)aString;
- (NSString *)stringByAppendingFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);

字符大小写转换

@property (readonly, copy) NSString *uppercaseString; // 大写
@property (readonly, copy) NSString *lowercaseString; // 小写
@property (readonly, copy) NSString *capitalizedString; // 首字母大写

字符串分割

    NSString *string = @"A_B_c_D_E_F";
    
    //分割(指定字符串)
    NSArray *resultArr1 = [string componentsSeparatedByString:@"_"];
    NSLog(@"%@", resultArr1);
    //输出:   (A, B, c, D, E, F)

    //分割(指定字符集合)
    NSArray *resultArr2 = [string componentsSeparatedByCharactersInSet:[NSCharacterSet lowercaseLetterCharacterSet]];
    NSLog(@"%@", resultArr2);    
    //输出:   ("A_B_" , "_D_E_F")

NSCharacterSet 说明

controlCharacterSet 控制符
whitespaceCharacterSet 空格符
whitespaceAndNewlineCharacterSet 空格换行符
decimalDigitCharacterSet 小数
letterCharacterSet 文字
lowercaseLetterCharacterSet 小写字母
uppercaseLetterCharacterSet 大写字母
nonBaseCharacterSet 非基础
alphanumericCharacterSet 数字字母
decomposableCharacterSet 可分解
illegalCharacterSet 非法
punctuationCharacterSet 标点
capitalizedLetterCharacterSet 大写
symbolCharacterSet 符号
newlineCharacterSet 换行符

字符串操作(修剪,填充,折叠,替换)

    NSString *string = @"3EWRs a;af";
  
    修剪
    NSString *result1 = [string stringByTrimmingCharactersInSet:[NSCharacterSet lowercaseLetterCharacterSet]];
    NSLog(@"%@", result1);
    //输出:   3EWRs a;
    
    
 填充
    NSString *result2 = [string stringByPaddingToLength:20 withString:@"填充" startingAtIndex:1];
    NSLog(@"%@", result2);
    //输出:   3EWRs a;af充填充填充填充填充填
    
    
折叠
    NSString *result3 = [string stringByFoldingWithOptions:NSNumericSearch locale:[NSLocale systemLocale]];
    NSLog(@"%@", result3);
    //输出:   3EWRs a;af
    
    
替换
    //替换(指定字符串)
    NSString *result4 = [string stringByReplacingOccurrencesOfString:@" " withString:@"替换"];
    NSLog(@"%@", result4);
    //输出:   3EWRs替换a;af
    

    //替换(指定字符串,条件,范围)
    NSString *result5 = [string stringByReplacingOccurrencesOfString:@"a" withString:@"替换" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length - 2)];
    NSLog(@"%@", result5);
    //输出:   3EWRs 替换;af
    
    
    //替换(指定范围)
    NSString *result6 = [string stringByReplacingCharactersInRange:NSMakeRange(0, string.length) withString:@"替换"];
    NSLog(@"%@", result6);
    //输出:   替换 

字符串写入

字符串写入
    //写入到指定路径,编码的文件中
    [string writeToFile:@"/Users/Desktop/LuisX.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    //写入到指定URL,编码的文件中
    [string writeToURL:[NSURL URLWithString:@"file://LuisX.text"] atomically:YES encoding:NSUTF8StringEncoding error:nil]; 

可变字符串拓展

NSMutableString *str = [NSMutableString stringWithString:@"string"];
    
插入
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
    [str insertString:@"123" atIndex:2];
    NSLog(@"%@", str);
    //输出:   st123ring
    
    
删除
- (void)deleteCharactersInRange:(NSRange)range;
    [str deleteCharactersInRange:NSMakeRange(2, 2)];
    NSLog(@"%@", str);
    //输出:   st3ring
    
    
拼接/
- (void)appendString:(NSString *)aString;
    [str appendString:@"456"];
    NSLog(@"%@", str);
    //输出:   st3ring456
    
    
格式化拼接
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
    [str appendFormat:@"7 89"];
    NSLog(@"%@", str);
    //输出:   st3ring4567 89
    
  
设置新字符串
- (void)setString:(NSString *)aString;
    [str setString:@"string"];
    NSLog(@"%@", str);
    //输出:   string

字符串替换
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
    //1.指定范围替换
    [str1 replaceCharactersInRange:NSMakeRange(2, 2) withString:@"123"];
    NSLog(@"%@", str1);
    //输出:   st123ng
    
    
    //2.指定字符串,条件,范围替换
- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;
    [str1 replaceOccurrencesOfString:@"123" withString:@"--" options:NSRegularExpressionSearch range:NSMakeRange(0, str1.length)];
    NSLog(@"%@", str1);
    //输出:   st--ng 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <1>常用创建方法//实例化方法创建 (instancetype)initWithString:(NSString...
    DVWang阅读 887评论 0 0
  • 转载自ObjeC中国 历史 计算机没法直接处理文本,它只和数字打交道。为了在计算机里用数字表示文本,我们指定了一个...
    玉米包谷阅读 1,221评论 0 4
  • 字符串的创建及初始化 string:方法:创建字符串; ...
    满大街都是大卡车阅读 302评论 0 0
  • 周一 上午第一节英语1-18周xj311 第二节财务管理1-18周xj109 下午第一节毛概1-18周160...
    sinceyang阅读 587评论 0 0