OC中字符串的简单操作
///字符串拼接
NSString *str1 = @"mingtian*";
NSString *str2 = @"nihao*";
NSString *str3 = [NSString stringWithFormat:@"%@%@",str1,str2];
///在拼接完str3的基础上继续拼接(后面只能拼接字符串)
str3 = [str3 stringByAppendingString:@"(zhangdayihou)"];
///在拼接完str3的基础上继续拼接(后面可拼接任意形式的数据)
str3 = [str3 stringByAppendingFormat:@"%@ %d",@"lalala*",11];
NSLog(@"str3 %@",str3);
///字符串分割(1)
NSArray *components = [str3 componentsSeparatedByString:@"*"];
NSLog(@"components: %@",components);
///字符串分割(2) NSCharacterSet集合 可以分割多个字符
components = [str3 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"*()"]];
NSLog(@"components1: %@",components);
///取字符串 从什么地方开始取
NSString *subString = [str3 substringFromIndex:2];
NSLog(@"subString2 %@",subString);
///取到什么位置
subString = [str3 substringToIndex:5];
NSLog(@"subString3 %@",subString);
///取一个范围之间的数据 NSMakeRang第一个参数是从第几个字符开始截取 第二个参数是截取字符串的长度
subString = [str3 substringWithRange:NSMakeRange(0, 5)];
NSLog(@"subString4 %@",subString);
字符串比较
NSString *str1 = @"hello";
NSString *str2 = @"hello";
///每次通过stringWithFormat 创建的字符串 都是新创建一个内存地址
str2 = [NSString stringWithFormat:@"hello"];
///比较指针的指向地址是否相同
if (str1 == str2)
{
//相等(是指内存地址相等)
}
else
{
//不相等 (是指内存地址不相等)
}
//比较字符串是否相同
if ([str1 isEqualToString:str2])
{
//相等(是指字符串相等)
}
else
{
//不相等(是指字符串不相等)
}
///重新赋值
str1 = @"abd";
str2 = @"acd";
NSComparisonResult result = [str1 compare:str2];
switch (result) {
case NSOrderedAscending://升序
NSLog(@"str1<str2");
break;
case NSOrderedSame://相同
NSLog(@"str1=str2");
break;
case NSOrderedDescending://降序
NSLog(@"str1>str2");
break;
default:
break;
}
字符串其他属性
NSString *myStr = @"patience is bitter";
///字符串的长度(包括空格)
NSLog(@"myStrLenth = %zd",myStr.length);
///将字符串所有字母转化成大写格式
NSLog(@"upper:%@",myStr.uppercaseString);
/// 所有字符串转成大写 uppercaseString
/// 所有字符串转成小写 lowercaseString
/// 驼峰原则 capitalizedString(每个单词的首字母大写)
///判断字符串是否有这个(patience)前缀
BOOL result = [myStr hasPrefix:@"patience"];
if (result)
{
NSLog(@"YES");
}
else
{
NSLog(@"NO");
}
///获取字符串某一个范围
NSRange range = [myStr rangeOfString:@"bitter"];
NSLog(@"%@",NSStringFromRange(range));
可变字符串的操作
//可变字符串可以用init初始化 因为可变字符串指的是内存空间是可以被更改的
//对象方法
NSMutableString *string = [[NSMutableString alloc]init];
///类方法创建
string = [NSMutableString string];
///可变字符串赋值
[string setString:@"我是可变字符串"];
NSLog(@"%p:%@",string,string);
///再次赋值会把之前的内容覆盖(内存地址不变)
// [string setString:@"123"];
///可变字符串拼接
[string appendString:@"你好"];
///指定插入字符串
[string insertString:@"明天" atIndex:7];
// NSLog(@"%p:%@",string,string);
///删除
[string deleteCharactersInRange:([string rangeOfString:@"你好"])];
///删除指定文字 ([string rangeOfString:@"你好"])
///删除字符串的范围 NSMakeRange(0, 4)
NSLog(@"%p:%@",string,string);
///修改字符串(范围替换)
[string replaceCharactersInRange:NSMakeRange(0, 1) withString:@"123"];
NSLog(@"%p:%@",string,string);
///修改字符串(替换掉一个字符串)
NSMutableString *string1 = [NSMutableString stringWithFormat:@"我是可变字符串"];
[string1 replaceCharactersInRange:([string1 rangeOfString:@"我是可变字符串"]) withString:@"123"];
NSLog(@"%p:%@",string1,string1);
//还请大家多多指教 多多提意见