+(instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;
instancetype作为返回值 代表返回的是当前这个类的对象。
int main(int argc, const char * argv[]) {
char *str0 ="rose";
NSString *str1 =[NSString stringWithUTF8String:str0];
//转换为c语言字符串
const char *s=str0.UTF8String;
NSLog(@"str1 = %@",str1 );
return 0;
}
+(instancetype)stringWithFormat:(NSString *)format,...;
NSString *str = [NSString stringWithFormat:@"大家好,我叫%@,我今年%d岁",name,age];
NSLog(@"str = %@",str);
NSString *str5 = @"hello";
NSUInteger len = [str5 length];//也可用点语法
NSLog (@"len = %lu",len);
unichar ch =[str6 characterAtIndex:2];
NSLog(@"ch = %c",ch);
//返回值是unichar,占2字节,输出要用%C,写C。
[str1 isEqualToString: str2]
NSString *st1 = @"china";
NSString *st2 = @"japan";
//也可以用int接,因为返回值是一个枚举
NSComparisonResult res = [st1 compare: st2];
NSLog(@"res= %d",res);
//如果返回值是-1,小
//0,等于
//1,大于
[str writeToFile:/*写入文件的路径值(url地址)*/
atomically:/*yes是先写一个临时文件如果成功再写入,no直接写入(推荐)*/
encoding:NSUTF8StringEncoding/*使用utf-8编码*/
error:&err.localizedDescription/*二级指针,要传递一个NSError指针的地址
这个指针的值为nil代表写入成功*/]
返回值是BOOL类型,代表是否写入成功
[NSString stringWithContentsOfFile:(nonnull NSString *) encoding:(NSStringEncoding) error:<(NSError *__autoreleasing _Nullable * _Nullable)]
//获取网页内容
NSURL *ui=[NSURL URLWithString:@"http://www.baidu.com"];
NSString *str1=[NSString stringWithContentsOfURL:ui encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str1);
//写入数据
NSString *str4 = @"啦啦啦";
BOOL res = [str4 writeToURL:ui atomically:NO encoding:NSUTF8StringEncoding error:nil];
}
NSComparisonResult res2 = [str compare:str1 options:NSCaseInsensitiveSearch/*忽略大小写*/];
switch (res2) {
case NSOrderedAscending:
NSLog(@"小");
break;
case NSOrderedSame:
NSLog(@"一样大");
break;
case NSOrderedDescending:
NSLog(@"大");
default:
break;
}
BOOL res = [str1 hasPrefix: 想要的开头]
BOOL res = [str1 hasPrefix: 想要的结尾]
NSRange range= [str rangeOfString:子串 /*options:NSBackwardsSearchcho从后往前搜索*/];
//表示子串出现的下标
NSLog(@"loc = %lu",range.location);
//代表子串在主串中匹配的长度
NSLog(@"loc = %lu",range.length);
if(range.location ==NSNotFound)
{
NSLog(@"没找到")
}
else
{
NSLog(@"找到了")
}
NSRange range;
range.location = 3;
range.length = 4;
NSRange range = {3,7}
NSRange range={.location = 3,.length = 4};
NSMakeRange(loc,len);
//转换为NSString
NSLong(@"%@",NSStringFromRange(ran));
//从第0个开始截取指定的个数
NSString *NS =[str substringToIndex:3];
//从指定下标截取到最后
NSString *NS1 =[str substringFromIndex:3];
//截取指定的一段范围
NSString *NS2 =[str substringWithRange:NSMakeRange(2,3 )];
//删除就替换为空
str= [str stringByReplacingOccurrencesOfString:@"被替换的内容" withString:@"要替换的内容"];
//从头开始转换,能转换多少是多少
int num =str.intValue;
//去掉字符串前后空格,中间无法去掉
str =[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
//转换为大写字母
str =[str uppercaseString];
//转换为小写字母
str =[str lowercaseString];
NSMutableString *str6 = [NSMutableString string];
//直接追加字符串
[str6 appendString:@"jack"];
//拼接方式追加
[str6 appendFormat: ];
NSMutableString *str =@"jack"
@"jack"是一个NSString对象,是一个父类对象。而str指针是一个NSMutableString类型的,是一个子类类型的,如果通过子类指针去调用子类独有的成员,就会运行错误。
//nil代表元素结束
NSArray *arr= [NSArray arrayWithObjects:@"a", @"b",nil];
//不用写nil
NSArray *arr=@ [@"a", @"b"];
NSLog(@“%@”,arr[0]);
NSString *str12 =[arr objectAtIndex:1];
//计数个数
arr.count;
//判断是否有这个元素
BOOL res=[arr containsObject:@"a"];
//取到第一个元素(可以取空)
arr.firstObject
//取到最后一个元素
arr.lastObject
//查找元素第一次出现的下标
NSUInteger index = [arr indexOfObject:@"rose"];
for(元素类型 变量名 in 数组名)
{
直接通过变量名就可以拿到数组中的每一个元素
}
for(id 变量名 in 数组名)
{
直接通过变量名就可以拿到数组中的每一个元素
}
[arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
//obj代表遍历出来的元素的值,idx代表遍历出来的元素的下标,如果希望停止遍历把stop指针指向的值改为YES
NSLog(@"%@",obj);
}];
//#为连接符
NSString *str =[arr componentsJoinedByString:@"#"];
NSLog(@"%@",str);
NSArray *arr =[str componentsSeparatedByString:@","];
//第一种
NSMutableArray *arr6 =[NSMutableArray new];
//第二种
NSMutableArray *arr5 =[NSMutableArray arrayWithObjects:@"jack",@"ss", nil];
任意的指针其实可以指向任意的对象,编译器不会报错,只会给一个警告。
虽然语法上可以乱指,但千万别乱指,因为运行的适合可能出错。当我们调用指针特有的方法就可能出错。
如何添加元素
[arr5 addObject:@"jack"];
//这个元素和之前数组为同级元素,所以一共有2组数据
[arr5 addObject:arr];
//在数组内插入
[arr5 addObjectsFromArray:arr] ;
//指定下标插入
[arr5 insertObject:@"lilei" atIndex:1];
//删除指定下标
[arr5 removeObjectAtIndex:1];
//删除指定名称
[arr5 removeObject:@“lili”];
//删除指定范围内的元素
[arr5 removeObject:@"lili" inRange:NSMakeRange(0,3)];
//删除最后一个元素
[arr5 removeLastObject];
//删除所有
[arr5 removeAllObject];
NSNumber *num1 =[NSNumber numberWithInt:10];
//简写
NSNumber *num2 =@20;
int num =10;
//变量要加()
NSNumber *n1 =@(num);
//可以用@添加
NSArray *ar = @[num1,num2,@30];
for (NSNumber *num in ar) {
NSLog(@"%d",num.intValue);
}