1.创建字符串:
//字符串创建工厂
NSString*str1=[NSString stringWithFormat:@”%d, %d”,1,2];
NSString*str2=[NSString stringWithString:@”hello”];
NSString*str3=[NSString stringWithCString:”hello” encoding:NSUTF8StringEncoding];
//普通方法
NSString*str4=@”hello”;
2.获取字符串的长度(length):
NSString*str=@”Hello”;
NSUIntegerleng=[strlength];
3.字符串的比较如果是==比较的是字符串的指针,如果是isEqualToString比较的是字符串的内容返回值是Bool类型
retain始终是浅赋值,引用计数每次加一,返回对象是否可变与赋值的对象保持一致
copy 如果是浅赋值,引用计数加一,返回一个不可改变的对象,如果是深赋值,引用计数保持不变,返回的一个可变对象
mutableCopy始终是深赋值,引用计数加一,返回一个可改变的对象
NSString*string1=@”hello”;
NSString*string2=[string1mutableCopy];
NSString*string3=[string1copy];
//比较指针
if (string1==string2)
{
NSLog(@”指针相同”);
}
else
{
NSLog(@”string1通过深拷贝给string2所以指针不同”);
}
//比较指针
if (string1==string3)
{
NSLog(@”string1通过浅拷贝给string3所以指针相同”);
}
else
{
NSLog(@”string1通过深拷贝给string3所以指针不同”);
}
//比较内容
if ([string1 isEqualToString:string2]==YES)
{
NSLog(@”string1 和 String2的内容相同”);
}
else
{
NSLog(@”string1 和 String2的内容不同”);
}
4.字符串比较的函数(compare)
NSString下面的compare函数的返回值是一个枚举类型NSComparisonResult; NSOrderedAscending=-1, NSOrderedSame=0,NSOrderedDescending = 1 ;
对compare进行重载,可以传入option参数, 1 代表不区分大小写,2代表区分大小写,64代表比较字符串的个数而不是字符串的值。
//字符串比较函数compare
NSString*strCompare1=@”abcde”;
NSString*strCompare2=@”bcdef”;
//compare的返回类型是NSComparisonResult
NSComparisonResultresult=[strCompare1 compare:strCompare2];
switch (result){
case NSOrderedAscending:
NSLog(@”升序(str1 < str2)”);
break;
case NSOrderedSame:
NSLog(@”两个字符串相等”);
break;
case NSOrderedDescending:
NSLog(@”降序(str1 > str2)”);
break;
default:
NSLog(@”别的情况!”);
break;
}
5.字符串的拼接函数:
NSString*append1=@”I love “;
NSString*append2=@”china”;
//用stringByAppendingString来进行字符串的拼接
append1=[append1 stringByAppendingString:append2];
NSLog(append1);
//用stringByAppendingFormat来进行字符串的拼接
append1=[append1 stringByAppendingFormat:@” iPhone%dS”,6];
NSLog(append1);
6.字符串的查找:
-(BOOL) hasPrefix : (NSString *) string: 判断一个字符串是否是以string开头;
-(BOOL) hasSuffix : (NSString *) string: 判断一个字符串是否是以string结尾;
-(NSRange) rangeOfString:(NSString *) string; 模式匹配字符串,返回类型是结构体NSRange, 结构体 NSRange里有两个值都是整型的,location代表子字符串在原有字符串中的位置,length代表长度。
//字符串的查找
NSString*parent=@”123456789”;
NSString*pre=@”123”;
NSString*suf=@”789”;
NSString*mid=@”456”;
//匹配开头
if ([parent hasPrefix:pre]==YES){
NSLog(@”匹配成功”);
}
//匹配结尾
if ([parent hasSuffix:suf]==YES){
NSLog(@”匹配成功”);
}
//从中间匹配
NSRangerange=[parent rangeOfString:mid];
NSLog(@”location = %d, length = %d”,range.location,range.length);
7.字符串的截取:
-(NSString *) substringFromIndex : (NSUInteger) from 获取从字符串的开头到字符串结尾的字符串内容,不包含from位置的字符。
-(NSString *)substringToIndex : (NSUInterger) to 获取从字符串开头到字符串的to位置的字符串内容,包含to位置的字符;
-(NSString *) substringWithRange:(NSRange) range 根据NSRange这个范围来获取字符串;
//字符串的截取
NSString*parent=@”123456789”;
//从一个位置截取字符串到结尾:可以从零开始
NSString*toEnd=[parent substringFromIndex:6];
NSLog(toEnd);
//从一个开头然后到传入的值
NSString*fromBegin=[parent substringToIndex:3];
NSLog(fromBegin);
//从一个位置截取指定长度
NSRangerange={3,3};
NSString*rangString=[parent substringWithRange:range];
NSLog(rangString);
8.字符串中的类型转换函数:
-(double) doubleValue; 把字符串的内容转换为double类型
-(float) floatValue; 把相应的字符串转换为float类型
-(int) intValue;把相应的字符串转换为int类型
//字符串的类型转换
NSString*test=@”1234.123456789”;
//转换为整数
int strToInt=[testintValue];
NSLog(@”strToInt = %d”,strToInt);
//转换为float
float strToFloat=[testfloatValue];
NSLog(@”strToFloat = %.9f”,strToFloat);
//转换为double
double strToDouble=[testdoubleValue];
NSLog(@”strToDouble = %.9f”,strToDouble);
9.字符串大小写转换函数:
-(NSString *)uppercaseString : 将字符全改成大写的;
-(NSString *)lowercaseString : 将字符全改成小写的;
-(NSString *)capitalizedString : 将首字母进行大写;
//字符串的大小写转换
NSString*string=@”hello world”;
//转换为大写
NSString*upper=[stringuppercaseString];
NSLog(upper);
//转换为小写
NSString*lower=[upperlowercaseString];
NSLog(lower);
//首字母大写
NSString*begin=[uppercapitalizedString];
10.字符串替换函数:
-(NSString )stringByReplacingOccurrencesOfString: (NSString ) target withString : (NSString *) replacement; 把字符串target转换为replacement
-(NSString )stringByReplacingCharactersInRange : (NSRange) range withString : (NSString ) replacement; 把指定范围内的字符串进行替换;
-(NSArray ) componentsSeparatedByString:(NSString ) separator:以字符串中的某个字符进行分割,返回数组对象
//字符串替换函数
NSString*string=@”abc,def,g”;
//将字符串中特定的字符串换成指定的字符串
NSString*after=[string stringByReplacingOccurrencesOfString:@”a” withString:@”zzzzzz”];
NSLog(after);
//将range范围内的字符串替换为相应的字符串
NSRangerange={0,6}; //从1开始到第6个
NSString*rangeString=[after stringByReplacingCharactersInRange:range withString:@”a”];
NSLog(rangeString);
//分割字符串,把分割完的字符串存入数组中
NSArray*split=[string componentsSeparatedByString:@”,”];
for (int i=0;i<[splitcount];i++){
NSLog(@”%@”,[split objectAtIndex:i]);
}