iOS字符串处理详解

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]);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值