1.NSString 初始化对象方法:
1.initWithString
eg: NSString *str1 = [[NSString alloc] initWithString:@"我要吃"];
2.initWithFormat
2.1初始化赋值
eg:NSString *str2 = [[NSString alloc] initWithFormat:@"%@",@"我要吃大鱼大肉"];
2.2字符串拼接
eg: int num = 100;
NSString *str100 = [[NSString alloc] initWithFormat:@"%d",num];
NSString *str101 = @"这个东西价格是";
NSString *str102 = [[NSString alloc] initWithFormat:@"%@ %d",str101,100];//拼接。
NSLog(@"str100:%@ str102:%@",str100,str102);//str100:100 str102:这个东西价格是 100
3.initWithCString
eg:NSString *str3 = [[NSString alloc] initWithCString:"没钱梅西" encoding:NSUTF8StringEncoding];
注:字符串拼接之initWithFormat:拼接随便,位置内容都随意,拼好的字符串要有字符串变量来接收。
2. 另外一种字符串拼接方法:stringByAppendingString
eg: NSString *str1 = @"我是";
NSString *catStr1 = [str1 stringByAppendingString:@"99”];//我是99
//前面是被添加的,参数是要添加的,填好了以后就是 str1@“99”。
//这个拼法,拼完后str1不变,因为str1为不可变量,需要用新变量catStr1来接收。
eg:NSString *str1 = @"我是";
NSString *str2 = @"一个";
NSString *str3 = @"人";
NSString *catStr123 = [str1 stringByAppendingString:str2];//一次只可拼接一个。
NSString *catStr456 = [catStr123 stringByAppendingString:str3];
NSLog(@"%@",catStr456);//我是一个人
3.NSString初始化类方法
1.stringWithString
eg: NSString *str1 = @"我是";
NSString *str2 = [NSString stringWithString:str1];
2.stringWithFormat
eg: NSString *str4 = [NSString stringWithFormat:@"%d%@%@",1,str2,str3
3.stringWithCString
eg:NSString *str3 = [NSString stringWithCString:"中国人" encoding:NSUTF8StringEncoding];
NSLog(@"%@ %@ %@",str2,str3,str4);//我是 中国人 1我是中国人
4.计算字符串长度
NSString *str20 = @"今天天气不错";
int strLength = [str20 length]; NSLog(@"%d",strLength);//OC字符串中没有\0,所以长度算出来也没多1.
5. 比较字符串(是否相等布尔类型)isEqualToString
NSString *comStr1 = @"i am man";
NSString *comStr2 = @"I am man";
BOOL isSame = [comStr1 isEqualToString:comStr2];//两个字符串比较,前后顺序不影响。
NSLog(@"%d",isSame);
6. 字符串比较大小
NSComparisonResult reuult = [comStr1 compare:comStr2];
NSLog(@"%ld",reuult);//返回结果为:1(comStr1大于comStr2),0(comStr1 等于comStr2),-1(comStr1 小于comStr2);
7. 不区分大小写比较
NSComparisonResult result1 = [comStr1 compare:comStr2 options:NSCaseInsensitiveSearch];//不区分大小写
NSLog(@"%ld",result1);//结果同上
8. 大小写转换
NSString *preStr = @"ABCDEFG";
8.1 //大写转小写
NSString *lowerStr = [preStr lowercaseString];
NSLog(@"%@ %@",preStr,lowerStr);//ABCDEFG abcdefg
//[preStr lowercaseString];执行这段后preStr没有变,以为他是不可变字符串,必须要新建一个字符换来接她,才变化了。
8.2//小写转大写。
NSString *upperStr = [lowerStr uppercaseString];
NSLog(@"%@ %@",lowerStr,upperStr);//abcdefg ABCDEFG
8.3//首字母大写
NSString *capStr = [lowerStr capitalizedString];
NSLog(@"%@",capStr);//Abcdefg
9.字符查找 characterAtIndex
int index = 1;
NSString *oneStr = @"here is 1417";
if(index<[oneStr length])
{
char HEREcHAR = [oneStr characterAtIndex:2];
NSLog(@"%c",HEREcHAR);//打印一个字符用%c,打印OC字符时用%C。
NSLog(@"%C",[oneStr characterAtIndex:index]);
}
10.字符串查找 rangeOfString(可以正向查找,反向查找)
//可以得到一个被查找字符串的{位置(location,下标)、长度(length)}这样的结构体。
NSString *waitingForSearchStr = @"abcdefghijklmn";
NSString *searchingStr = @"fgh";
//方法名是rangeOfString,由被查找的字符串来调用这个方法,参数是想要查找的内容,结果是一个结构体(所以不用加*,对象才加*)NSRange{location,length};
NSRange range = [waitingForSearchStr rangeOfString:searchingStr];
NSLog(@"%lu,%lu",range.location,range.length);
if(range.location== NSNotFound)
{
//写没找到的逻辑
NSLog(@"没有");
}else{
//写找到了要干的事儿。
NSLog(@"有");
}
//用这个NSRange找一个字符串的时候,他只找一个,找到了就停。
//从后向前找
NSString *strTemp1 = @"生日照香炉生紫烟";
NSString *strTemp2 = @"生";
//-------------------------------------------------------------------------------------------------
NSLog(@"正:%lu",[strTemp1 rangeOfString:strTemp2].location);//
NSLog(@"反:%lu",[strTemp1 rangeOfString:strTemp2 options:NSBackwardsSearch].location);//反指的是从后往前找,但下标还是字对应的下标。
//------------------------------------ ------------------------------------------------------------
NSString *strTemp3 = @"abcdefg";
NSString *strTemp4 = @"cd";
if(range.location==NSNotFound)
{
NSLog(@"没找到");
}else
{
NSLog(@"找到了");
}
NSLog(@"%lu",[strTemp3 rangeOfString:strTemp4].location);
}
11.前后缀比较hasPrefix/ hasSuffix
返回值为布尔类型的。
//前缀,必须在开头
NSString *pre = @"www.baidu.com";
BOOL isHasWWW = [pre hasPrefix:@"www"];//返回一个布尔值,有威为真,没有为假。
if(isHasWWW)
{
NSLog(@"%d",isHasWWW);//1为真
}else{
NSLog(@"没有");
}
//后缀,必须在后面
NSString *book = @".pdf红楼梦.pdf";
NSString *sufStr = @".pdf";
BOOL isSufStr = [book hasSuffix:sufStr];
NSLog(@"%d",isSufStr);
12.截取字符串
12.1 substringToIndex
//从index的0开始截起,截到某一个下标为止
eg: NSString *wantToBeSubStr = @"起来,不愿做努力的人们,把我们的血肉主城我们新的长城";
NSString *fromBeginSubEndStr = [wantToBeSubStr substringToIndex:3];
NSLog(@"从前面切好的字符串是: %@",fromBeginSubEndStr);//(起来,)不包括index
12.2 substringFromIndex
//从某个index开始截起,一直截到字符串最后一位。
NSString *fromIndexStr = [wantToBeSubStr substringFromIndex:18];//包括index。
NSLog(@"%@",fromIndexStr);//主城我们新的长城
12.3 substringWithRange(切一段)
//先找到这一段是否在字符串中。
NSRange range = [wantToBeSubStr rangeOfString:@"把我们的血肉"];
//然后切开
NSString *rangeSubEndStr = [wantToBeSubStr substringWithRange:range];
NSLog(@"%@",rangeSubEndStr);// 把我们的血肉
13.可变对象字符串 NSMutableString
//可变的对象,尽量不要直接指向另外一个内存,而是为自己申请一个内存,再添加内容。
1.使用alloc方法,初始化时,一般申请一块内存。
NSMutableString *muStr =[[NSMutableString alloc] initWithCapacity:0];//为这个可变字符串申请一个内存。
2.使用类方法初始化,依然只为其申请内存。
NSMutableString *muStr1 = [NSMutableString stringWithCapacity:0];
3.增值 appendString
3.1 [muStr1 appendString:@"我是"];
//如果调用了可变字符串的方法,那么这些可变字符串对象的本身的值发生改变。所以不需要在前面做一个新的字符串对象来接。
3.2 [muStr1 appendFormat:@"%d",11];
NSLog(@"%@",muStr1);// 我是11
4.两个参数增值 insertString
//有两个参数,第一个是要添加的字符串,第二个是将要添加字符串的下标。
[muStr1 insertString:@"一个" atIndex:2];
//向任意位置添加字符串
NSLog(@"%@",muStr1);//我是第一个11
[muStr1 appendFormat:@"岁的小孩"];
NSLog(@"%@",muStr1);
[muStr1 insertString:@"不到" atIndex:4];
NSLog(@"%@",muStr1);
5.删值 deleteCharactersInRange
//方法名deleteCharactersInRange,参数是一个NSRange的结构体,由location和length组成
[muStr1 deleteCharactersInRange:NSMakeRange(2, 2)];//相当于将“一个”删除。
NSLog(@"%@",muStr1);
[muStr1 deleteCharactersInRange:NSMakeRange(2,6)];
NSLog(@"%@",muStr1);
注:NSMakeRange(2,6);算是切值,将下标为2往后长度为6的段落字符串截取出来。
6.改值replaceCharactersInRange
//两个参数,第一个为NSRange的结构体,表示要改内容的位置和长度,第二个是改成的内容。
[muStr1 replaceCharactersInRange:NSMakeRange(2,1) withString:@"破"];
NSLog(@"%@",muStr1);//我是破孩
[muStr1 replaceCharactersInRange:NSMakeRange(2, 2) withString:@"邋遢大王"];
NSLog(@"%@",muStr1);// 我是邋遢大王
注:改值方法 setString
[muStr1 setString:@"123"];
NSLog(@"%@",muStr1);//123
[muStr1 setString:@"over"];
NSLog(@"%@",muStr1);//over