OC之NSString、NSMutableString学习笔记 常用方法

时间:2023-03-08 22:00:58
OC之NSString、NSMutableString学习笔记 常用方法

NSString篇:

1.字符串连接

         NSString *beijing = @"北京";
NSString *welcome = [beijing stringByAppendingString:@" 欢迎你 "];//字符串连接
NSLog(@"%@",welcome);
  //两种效果相同的字符串连接
NSString *str22 = [str20 stringByAppendingFormat:@"%@",str21];
NSString *str23 = [str20 stringByAppendingString:str21];

2.字符串长度

 NSLog(@"%zi",welcome.length);//字符串的长度

3.字符串比较

注意比较的是内容,此处并未比较地址

         BOOL flag = [beijing isEqualToString:@"北京"];//字符串比较
NSLog(@"%d",flag);//布尔类型 1相等 0不相等

比较(地址+内容)

         NSString *sstring1 = [[NSString alloc] initWithFormat:@""];
NSString *sstring2 = [[NSString alloc] initWithFormat:@""];
if(sstring1 != sstring2)
NSLog(@"地址不相等");
else NSLog(@"地址相等");

NSLog(@"%p,%p"sstring1,sstring2);

 

4.字符串向数据的转换

         NSString *number = @"",*floatNumber = @"1233.45";
float aa = [floatNumber floatValue];// 字符串转换成浮点型
int a = [number intValue];//字符串转换成整型
NSLog(@"%d,%f",a,aa);

5.字符串本身元素的索引

         NSString *seachStr = @"12345.doc";
BOOL f = [seachStr hasPrefix:@""];//判断A字符串是否以B字符串为开头
BOOL f1 = [seachStr hasSuffix:@".doc"];//判断A字符串是否以B字符串结尾
NSRange range = [seachStr rangeOfString:@""];//搜索B字符串在A字符串中的范围
//库中的NSRange(包含了位置和长度的结构体)
// typedef struct _NSRange {
// NSUInteger location;
// NSUInteger length;
// } NSRange;
NSLog(@"%d,%d,%lu,%lu",f,f1,(range.location),(range.length));//位置 长度 (unsigned long) if (range.location == NSNotFound)
{
NSLog(@"没找到");
}

6.字符串的裁剪

         NSString *subResource = @"abcde";
NSString *subStr = [subResource substringFromIndex:];//从位置1开始剪切字符串,包含1
NSLog(@"%@",subStr); NSString *subStr2 = [subResource substringToIndex:];//剪切到位置3,不包含3,留下3
NSLog(@"%@",subStr2); NSString *subResource = @"abcde";
NSRange range1 = NSMakeRange(, );
// range1.location = 1;//位置
// range1.length = 2;//长度
//等价
//库中的NSMakeRange
// NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
// NSRange r;
// r.location = loc;
// r.length = len;
// return r;
// }
NSString *subStr3 = [subResource substringWithRange:range1];//剪切给定范围的字符串
//compare方法:1.升序:前 < 后(-1),2.相等0 3.降序:前 > 后(1)
NSLog(@"%@",subStr3);

7.字符串的比较

        NSLog(@"%d",(NSComparisonResult result = [@"ABC" compare:@"abc"]));
NSComparisonResult/*枚举类型*/ result = [@"CBA" compare:@"abc" ] ;
NSLog(@"%ld",result);// NSOrderedAscending = -1L,存储类型L
/*typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};*/
// NSComparisonResult result = [@“” caseInsensitiveCompare:@“”];
不区分大小写的比较

8.字符串元素插入、剔除、替换

         NSString *string = @"Hello World and Sunshine";
NSString *string1= [string stringByReplacingOccurrencesOfS tring:@"World" withString:@"iBokanWisdom"];
NSLog(@"替换之前%@替换之后%@",string,string1);
 
 #import <Foundation/Foundation.h>

 int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSString *string = @"Hello World and Sunshine";
NSString *string1= [string stringByReplacingOccurrencesOfString:@"World" withString:@"iBokanWisdom"];
NSLog(@"替换之前%@替换之后%@",string,string1); NSRange range = [string rangeOfString:@"World"];//搜索World字符串在Hello World and Sunshine字符串中的范围
NSString *string3 = [string stringByReplacingCharactersInRange:range withString:@"iBokanWisdom"];//某范围插入字符串
NSLog(@"%@",string3);
NSArray *array = [string componentsSeparatedByString:@" " ];//字符串转换为数组
//array = @[@"Hello",@"World",@"and",@"Sunshine"];
NSMutableArray *mutableArray = [array mutableCopy];//数组转换
[mutableArray replaceObjectAtIndex: withObject:@"iBokanWisdom"];//iBokanWisdom替换World
// [NSMutableArray componentsJoinedByString:@" “];
NSString *string2 = [mutableArray componentsJoinedByString:@" "];//数组转换为字符串
NSLog(@"%@",string2); }
return ;
}

// NSString构造方法:

//构造方法,语法跟NSNumber,NSArray差不多
stringWithString:
stringWithFormat:@""

//比较

isEqualTo..

compare

//获取X之前

sub..ToIndex

//截取X到尾

sub..FromIndex

//查找

rangeOf..

NSMutableString篇(注意:可变字符串与不可变字符串的相同操作方法是不同的)

         NSMutableString *mutableString = [[NSMutableString alloc] initWithCapacity/*容量*/:];//可变字符串初始化
//首先分配0个存储空间,当字符串长度超出范围后,再去开辟新的存储空间
[mutableString setString:@""];
NSString *sstring;//不可变字符串初始化
sstring = @"";//不可变字符串赋值
[mutableString appendString:@""];//可变字符串的追加方法,不产生新的字符串,直接改变原有的字符串
NSString *welcome = [sstring stringByAppendingString:@" 欢迎你 "];//不可变字符串的追加方法,要产生新的字符串
NSLog(@"%@--%@",mutableString,welcome);
//总结:可变字符串只有初始化并且说明长度后才可以对其操作,否则为空

//插入字符串

insertString

//追加字符串

appendString

//替换字符串

deleteCharactersInRange:withString