NSString | NSMuatbleString | |
可变 | 静态 | 动态 |
普通创建 | @“hello” | 无 |
对象创建 | [[NSString alloc] initwithString:@"hello1"] | [[NSMutableString alloc] initwithString:@"hello1"] |
占位符创建 | [NSString alloc]initwithFormat:@"%@",string1]; | [[NSMutableString alloc]initwithFormat:@"%@",string1];] |
类创建 | [NSString stringwithstring:@"hello"]; | [NSMutableString stringwithstring:@"hello"]; |
一、NSString 对象
用途:处理字符串的常用类
#import <Foundation/Foundation.h>
int main(int argc, const charcahr * argv[]){
@autoreleasepool{
//NSString是不可变字符串
//1 -- 静态普通方式创建字符串
NSString * string1 = @"hello";
NSLog(@"%@",string1);
//2 -- 静态对象形式创建字符串
NSString * string2 = [[NSString alloc] initwithString:@"hello1"];
NSLog(@"%@",string1);
//3 -- 静态实现字符串拼接形式
NSString * string3 = [NSString alloc]initwithFormat:@"hello %@", string1];
//4 -- 静态类形式创建字符串
NSString * string4 = [NSString stringwithstring:@"hello"];
//5 -- 字符串的比较--isEqualToString
//比较字符串的值
NSString * string5 = @"abcd";
NSString * string52 = @"1234";
BOOL isEquals = [string5 isEqualToString:string52];
if(isEquals){
NSLog("是");
}else{
NSLog("否 ");
}
//6 -- 字符串内存分配--栈中常量区的分配
//这里的内存做了优化,string6 和string62 是相同的,因为在栈中的常量区中分配,同时也是局部变量。
NSString * string6 = @"abc";
NSString * string62 = @"abc";
//这里的内存做了优化,string64 和string63 是相同的,是在栈中分配内存
NSString * string63 = [NSString alloc]initwithString:@"abc"];
NSString * string64 = [NSString alloc]initwithString:@"abc"];
//下面的string65和string66是在堆中分配内存的,所以string65和string66是不相同的
NSString * string65 =[[NSString alloc]initwithFormat:@"abc%@",@"def"];
NSString * string66 =[[NSString alloc]initwithFormat:@"abc%@",@"def"];
//7 -- 大小写是否相等的判断 -- caseInsensitiveCompare方法
NSString * string7 = @"zhangsan";
NSString * string72 = @"ZHANGSAN";
NSComparisonResult result = [string7 caseInsensitiveCompare:string76];
if(result == NSOrderedSame){
}else{
}
//8 -- 两个字符串的大小比较 -- compare方法
result =[string7 compare:string72];
if(result == NSOrderedAScending){
//升序
}else{
//降序
}
//9 -- 取字符串长度值 -- length方法
NSString * string9 = @"abc";
NSInteger len = [string9 lengh];
//10 -- 转大小写和首字母大写 -- uppercaseString/lowercaseString
NSString * string10 = @"abc";
NSString * string102 = [string10 uppercaseString]; //大写
NSString * string103 = [string102 lowercaseString]; //小写
NSString * string 104 = [string103 capitalizedString];
//11 -- 数值转化方法 --TypeXXXValue
NSString * string11 = @"22";
NSInteger value = [String11 intValue];
NSString * string112 = @"1";
BOOL values = [String112 boolValue];
}
//12 --字符串截取 -- subStringToIndex / subStringFromIndex / subStringwithRange
// --注意--》截取是左闭右开,也就是下面的包不包括3
NSString * string12 = @"abcdefg";
//从开始位置截取到下标为3的字符串(不包括3)
NSString * string122 = [string12 subStringToIndex:3];
//从指定的index开始就到尾部(包括3)
NSString * string123 = [string12 subStringFromIndex:3];
//截取一个范围 -- 需要使用到Range
NSRange range = {1,3};
string124 =[string12 subStringwithRange:range];
//13 -- 字符串的追加 -- stringByAppendingString/ stringByAppendFormat
NSString * string13 = @"objective";
NSString * string132 = [string13 stringByAppendingString:@"swift"];
NSString * string134 = [string13 stringByAppendingFormat:@"%@",@"swift"];
//14 -- 字符串的查找 -- rangeofString
NSString * string14 = @"abcdefg";
NSRange range = [string14 rangeofString: @"d"]; // 返回一个范围
if(range.location == NSNotFound){
NSLog("没找到");
}else{
NSLog("找到");
}
//15 -- 提取指定未知的字符串 -- characterAtIndex
NSString * string15 = @"abcdefg";
NSString * string152 = [string15 charcterAtIndex:3];
二、NSMuatbleSting对象
#import <Foundation/Foundation.h>
int main(int argc,const charchar * argv[]){
@autoreleasepool{
//NSMutableString是动态创建
//因为是动态创建,所以不能使用 NSMutableString * string = @"hello";这种形式,因为这种形式的值是在常量池中,不可变。
//1 -- 动态对象形式创建字符串
NSMutableString * string1 = [[NSMutableString alloc] initwithString:@"hello1"];
NSLog(@"%@",string1);
//2 -- 动态实现字符串拼接形式
NSMutableString * string2 = [NSMutableString alloc]initwithFormat:@"hello %@", string1];
//3 -- 动态类形式创建字符串
NSMutableString * string3 = [NSMutableString stringwithstring:@"hello"];
//4 -- 插入字符串 -- inserString方法//在源字符串中指定的index中插入字符串,不会产生新的对象
[string3 insertString:@"可变"atIndex:0];
//5 -- 追加字符串 -- appendString方法
//不会产生新的对象
[string3 appendString:@"可变"];
//6 -- 删除字符串 -- deleteCharacterInRange方法
NSMutableString * string6 = [NSMutableString stringwithstring:@"hello"];
NSRange range = {1,3};
[string6 deletecharacterInRange:range];
//7 -- 替换字符串 -- replaceCharactersInRange方法
NSMutableString * string7 = [NSMutableString stringwithstring :@"hello"];
NSRange range = [string7 rangeofString:@"11"];
[string7 replaceCharacterInRange:ranges withString:@"ee"];
}
}