NSString 常用类方法

作者: 香蕉你个菠萝 | 来源:发表于2016-06-20 16:11 被阅读138次

字符串其实就是一组人类可读的字符序列。

-不要在使用过程中更换字符串对象的指向(内存地址)

NSString * str = [[NSString alloc]init];

str = @"hello";//造成内存泄漏

-以字符串创建字符串不需要人为内存管理,生命周期不可控

1、栈(操作系统):由操作系统自动分配释放;

2、堆(操作系统):一般由程序员分配释放。

NSString *str1 = [[NSString alloc]initWithString:@"Hello"];//在栈区

-格式化创建字符串

NSString * str2 = [[NSString alloc]initWithFormat:@"%@,%@",@"Hello",@"World"];

NSLog(@"%@",str2);

NSString* string = [NSString stringWithFormat:@"my name is %@!",@"5"];

-字符串比较

NSString * str5 = @"Hello";

NSString * str6 = @"World";

//字符串比较切记不要直接使用对象进行比较//str5 == str6;

[str5 isEqualToString:str6];//比较是否相等

1、isEqualToString放回一个BOOL值(YES或NO)来表示两个字符串是否相等

2、compare:放回一个NSComparisonResult来显示比较结果

enum{

NSOrderedAscending= -1,

NSOrderedSame,

NSOrderedDescending

};

typedefNSIntegerNSComparisonResult;

例子如下

NSLog(@"%ld",[str5 compare:str6]);

3、compare:<#(nonnull NSString *)#> options:<#(NSStringCompareOptions)#> 此方法中 options参数中有以下几种常见选项:

NSCaseInsensitiveSearch//不区分大小写字符比较

NSLiteralSearch//进行完全比较,区分大小写

NSNumericSearch//比较字符串字符的个数,而不是字符串值

例如

[str6 compare:str5 options:NSNumericSearch];

-判断一个字符串是否以某个字符串开头或结尾

[string1 hasPrefix:@"H"];

[string1 hasSuffix:@"zip"];

-字符串拼接

NSString * string3 = [string2 stringByAppendingString:string1];

NSLog(@"%@",string3);

-字符串查找

NSString* string =@"张三";

NSRange range = [string rangeOfString:@"张"];

NSLog(@"%ld,%ld",range.length,range.location);

NSString* string2 = [string stringByReplacingCharactersInRange:range withString:@"h"];

NSLog(@"%@",string2);

-根据范围获得字符串

NSString * string =@"Hello,World";

[string characterAtIndex:0];

NSLog(@"%c",[string characterAtIndex:0]);

-从字符串开头截取到指定未指定的字符串(不包括该位置的字符)

NSLog(@"%@",[string substringFromIndex:3]);

-从指定位置开始截取到指定位置的字符串

NSLog(@"%@",[string substringWithRange:<#(NSRange)#>]);

-从指定位置开始截取

NSLog(@"%@",[string substringFromIndex:1]);

-在程序运行时,字符串通常以UTF-8的转码格式表现

相关文章

网友评论

    本文标题:NSString 常用类方法

    本文链接:https://www.haomeiwen.com/subject/zydblttx.html