Foudation框架是CoCoa编程,iOS编程基础架构,包括:字符串、集合、日期、时间等基础类。字符串,数组、字典都属于Foudation框架,C语言中,字符串是由char(ASCII码)字符组成。OC中字符串是有uichar(UniCode)组成。
NSString,不可变数组,即创建之后,字符串的长度不可改变.NSMutableString是可变数组,即创建之后,字符串长度可以改变。 NSMutableString是NSString的子类。
//main.m
#import<Foundation/Foundation.h>
int main(intargc, const char * argv[]) {
@autoreleasepool {
//OC中的字符串有unichar(多字节字符)组成,采用unicode编码
// C中的字符串有char组成,采用ASCII编码。
// 一
// NSString
// 不可变字符串:长度以及内容不可变
// 字符串对象的创建
// 初始化方法
// 对字符串进行修改与操作的方法都是以string开头
// NSString *str =[[NSStringalloc]initWithFormat:@"1234"];
// // 将基本数据类型转化为字符串
// // 字符串对象就是按照format之后的字符串格式。
// NSString *str1 =[[NSStringalloc]initWithFormat:@"今年%d岁",1234];
// NSLog(@"%@",str1);
// //便利构造器
// NSString *str2=[NSStringstringWithFormat:@"%@",@"fjdi"];
// NSLog(@"%@",str2);
//
// // 字面量创建 (常用第三种)
// NSString *str3 =@"大师兄";
//
// //常⽤用⽅方法
// //获取字符串长度。
// //NSInterger不是一个int型
// NSIntegerlen = [str2length];
// NSLog(@"%ld",len);
//
// // 判断字符串是否以指定的字符串开始或结束
// BOOL a = [str3hasPrefix:@"大"];
// NSLog(@"a =%d",a);
//
// BOOL b = [str3hasSuffix:@"兄"];
// NSLog(@"b =%d",b);
//
// // 搜索字符串范围
// NSRange range = [str1rangeOfString:@"今"];
// NSLog(@"%ld%ld",range.length,range.location);
//
// //获取子字符串。
// // 从下标1开始
// NSString *str6 =[str substringFromIndex:1];
// NSLog(@"%@",str6);
// // 从下标1结束
// NSString *str7 =[str substringToIndex:1];
// NSLog(@"%@",str7);
// // 根据给定范围得到字符串,下标或长度越界就会崩溃
// NSRange range2 ={1,2};
// // NSRange range =NSMakeRange(1,2);
// //OC中几乎所有结构体变量的创建语法:
// // NSPoint p =NSMakePoint;
// //NSRect r =NSMakeRect();
// //NSRange re =NSMakeRange();
//
// NSString *str8 =[str substringWithRange:range2];
// //NSString *str8 =[strsubstringWithRange:NSMakeRange(1,2)];
//
// NSLog(@"%@",str8);
// //拼接字符串。
// NSString *str9 =[strstringByAppendingFormat:@"%d",13];
// NSString *str10 =[strstringByAppendingString:@"there"];
// NSLog(@"%@",str9);
// NSLog(@"%@",str10);
//// 替换字符串。
// // 如果第一个参数没有出现在字符串中,则不替换。
// NSString *str11 =[str3 stringByReplacingOccurrencesOfString:@"兄"withString:@"姐"];
// NSLog(@"%@%@",str11,str3);
//// NSString *strr =[str3 stringByReplacingCharactersInRange:range2withString:@"aa"];
//// NSLog(@"strr= %@",strr);
//// 字符串比较。
// // 比较结果分别为:-1 0 1,比较结果为枚举值
// NSComparisonResultcomparison = [str compare:@"1236"];
// NSLog(@"%ld",comparison);
// // 字符串相等。
// BOOL res =[strisEqualTo:@"123"];
// NSLog(@"%d",res);
// // 字符串和数值类型转换
// int c = [strintValue];
// NSLog(@"%d",c);
// // 大小写转换操作.
//
// NSString *str12 =@"fjdiDFf";
// NSString *up = [str12uppercaseString];
// NSString *low = [str12lowercaseString];
// NSString *capital =[str12 capitalizedString];
// NSLog(@"%@",up);
// NSLog(@"%@",low);
// NSLog(@"%@",capital);
//
// NSString *str13 =@"thdkdpng";
// if ([str13hasSuffix:@"png"] ) {
// NSString *str14 =[str13stringByReplacingOccurrencesOfString:@"png"withString:@"jpg"];
// NSLog(@"%@",str14);
// }else{
// NSString*str14 = [str13stringByAppendingString:@".jpg"];
// NSLog(@"%@",str14);
// }
//二
// // 可变字符串: 继承与不可变字符串,内容以及长度可变。
//
// // 1、创建可变字符串对象
// // 下面命名错误!@"123"存在常量区,但是mStr本身可变
// //NSMutableString *mStr = @"123";
// NSMutableString *mStr=[[NSMutableStringalloc]initWithFormat:@"hehehe"];
// NSMutableString *mStr1=[NSMutableStringstringWithFormat:@"hehe"];
//// 2、拼接字符串。
// // 可变字符串本身可以被修改,因此改变的是本身,不需要返回值
// [mStrappendString:@"11"];
// NSLog(@"%@",mStr);
//
//// 3、插⼊入字符。
// [mStr1insertString:@"11"atIndex:2];
// NSLog(@"%@",mStr1);
//// 4、删除字符串。
// [mStr1deleteCharactersInRange:NSMakeRange(2,2)];
// NSLog(@"%@",mStr1);
//
// NSMutableString *mstr= [NSMutableStringstringWithFormat:@"tijijpg"];
// if([mstrhasSuffix:@"jpg"] ) {
// // 使用父类的方法,一定要有返回值
// //mstr = (NSMutableString *)[mstrstringByReplacingOccurrencesOfString:@"jpg"withString:@"png"];
// [mstrreplaceCharactersInRange:NSMakeRange(5,3)withString:@"png"];
// }else{
// [mstrappendString:@".png"];
// }
// NSLog(@"%@",mstr);
// 三
// 数组对象
// 数组是一个容器类:存储的是对象类型,且元素有序。
// 不可变数组,长度以及内容不可变
// NSArray
// 1、创建数组对象,使用实例初始化或便利构造器
//元素不能为整型,数组对象以 nil 结束
NSArray *arr = [[NSArrayalloc]initWithObjects:@"123",@"dj",@"dd",nil];
// NSArray *arr1=[NSArrayarrayWithObjects:@"123",@"dj",@"dd",nil];
// 2、获取元素个数
NSInteger count = [arr count];
NSLog(@"%ld",count);
// 3、根据索引值获取对象
NSString *s = [arr objectAtIndex:1];
NSLog(@"%@",s);
// 4、获取对象在数组中的索引值
NSInteger index =[arrindexOfObject:@"dj"];
NSLog(@"%ld",index);
// NSMutableArray
// 可变数组:继承于不可变数组,增加了增删改等方法
// 1、初始化一个可变数组,给定数组容量为5,如果不够,自动翻倍,10,20,40,80;
NSMutableArray *mArr = [[NSMutableArrayalloc]initWithCapacity:5];
NSMutableArray *mArr1=[[NSMutableArrayalloc]initWithObjects:@"123",@"21", nil];
NSMutableArray *mArr2=[NSMutableArrayarrayWithObjects:@"123",@"21", nil];
// 2 添加元素、插入元素
[mArr1addObject:@"apple"];
NSLog(@"%@",mArr1);
[mArr1insertObject:@"little"atIndex:1];
NSLog(@"%@",mArr1);
//3、删除元素、替换元素.
[mArr1removeObject:@"little"];
[mArr1removeObjectAtIndex:0];
NSLog(@"%@",mArr1);
[mArr1replaceObjectAtIndex:1 withObject:@"less"];
NSLog(@"%@",mArr1);
//4、交换指定位置的两个元素
[mArr1exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"%@",mArr1);
for (inti = 0; i< [mArr1 count]; i++) {
NSLog(@"%@",[mArr1objectAtIndex:i]);
}
for (NSMutableArray *arr in mArr1) {
NSLog(@"%@",arr);
}
// 数值对象:NSNumber能够把基本数据类型转换成对象类型
NSNumber *num =[[NSNumberalloc]initWithInt:123];
NSNumber *num1 = [NSNumbernumberWithInteger:123];
//将数值对象添加到数组中
[mArr1addObject:num];
[mArr1 addObject:num1];
NSLog(@"%@",mArr1);
// 将数值对象转换为整型
int a = [numintValue];
NSLog(@"%i",a);
}
return 0;
}
;