OC字符串和数值

OC字符串和数值
C语⾔言中,字符串是char(ASCII码)字符组成。 OC中,字符串是由Unichar(Unicode)字符组成
NSString:不可变字符串,即:创建以后,内容和长度不能更改。
NSMableString:可变字符串,即:创建以后,内容还 可以修改。
一、NNString类
创建字符串对象:
NSString *str=@“hello ku gou”;//创建字符串常量
创建一个空的字符串:
NSString *str=[[NSString alloc]init];//初始化
NSString *str =[NSString string];
使用已有的字符串来创建一个新的字符串对象
NSString *str1=[[NSString alloc] initWithString:str];
NSString *str1=[[NSString alloc] stringWithString:str];
用格式化字符串初始字符串对象
NSString *str2=[[NSString alloc] initWithFormat:@”%@,%i,%s”,str1,10,’saasf’]
NSString *str2=[[NSString alloc] stringWithFormat:@””];
字符串的相互转化
C—>OC
char *cstr=”iphone”;
方1.NSString *str1=[[NSString alloc] initWithCString:cstr encoding:NSUTF8StringEncoding];
方2.NSString *str1=[[NSString alloc] initWithUTF8String:cstr];
OC—>C
NSString *str=@”hello jj”;
方1.const char *cstr=[str UTF8String];
方2.const char *cstr=[str cStringUsingEncoding:NSUTF8StringEncoding];
字符串初始化方法:
//万能句式可拼接、拷贝并初始化
NSString *string = [NSString stringWithFormat:@”Housei”];

字符串拷贝:
NSString *string2 = [NSString stringWithString: string];
NSLog(@“%@”,string2);

字符串拼接:
NSString *str1=[[NSString alloc] init ];
Str1=[NSString stringByAppendString : str];
NSLog(@”%@”,str1);
初始化赋值,方法1:
NSString *string3 = [NSString stringWithFormat:@”%@hahahah%@”,string,string2]; //输出HouseihahahahHousei

方法2:
NSString *string4 = [[NSString alloc]initWithString:string2]; //拷贝string2的值
NSlog(@”%@”,[string4 stringByAppendingFormat:@”memeda”]); //直接拼接字符

方法3:
NSlog(@”%@”,[string4 stringByAppendingString:string2]); //拼接实例方法
NSString4=[string2 tringByAppendingString:(NSString *)string3];
方法4:
//用一个字符串初始化新字符串
NSString *string2=[NSString stringWithString:string1];
字符串替换:
//a替换成了i。
NSString *str2=[str1 stringByReplacingOccurrencesOfString:@”a” withString:@”i”];

//替换字符串中指定范围内的字符
NSString * skt2 = [skt2 stringByReplacingCharactersInRange:NSMakeRange(2,3)withString:@”兰花”];

//3.替换字符串中得指定字符
NSString * skt3 = [skt3 stringByReplancingOccurrencesOfString:@”萌萌哒”withString:@”帅帅哒”];

字符串比较(compare):
NSlog(@”%ld”,[string compare:string2 options:NSLiteralSearch]); //输出比较的数值 //NSLiteralSearch(精确至逐字符读取) //string和string2比较
初始化返回值获取比较值:
NSComparisonResult result = [string1 compare: string2];
方法1:
switch(result){
case NSOrderedAscending:
// string1跟string2比较 有增长 故string2>string1
NSLog(@”前小后大”);
break;
case NSOrderedDescending:
NSLog(@”前大后小”);
break;
case NSOrderSame:
NSLog(@”相等”);
default:
break;
}

字符串长度:
NSLog(@”%lu”,[string3 length]);//求字符串长度

判断相同与否(equal)
判断字符串内容是否相等(汉字也可对比):
if([string isEqualToString:@”housei”]){
NSLog(@”相同”);
}else{
NSLog(@”不同”);}

字符串截取:
// 字符串下标 往后读取的字符串长度
//NSMakeRange(NSUInteger loc,NSUInteger len) //NSUInteger 等于 long NSInteger

//?代表下标,注意不要越界。获取字符串中得字符
NSLog(@”%c”,[str characterAtIndex:?]);
//截取 从字符串下标第几个开始截取到末尾
NSLog(@”%@”,[str substringFromIndex:2]; //从第二位开始截取到最后
//截取指定长度的字符串,从第0位开始
NSLog(@”%@”,[str substringToIndex:3]); //截取从第0位开始的三位字符串
//从下标第几个截取多少长度的字符串NSMakeRange NSRange(下标,长度)
NSLog(@”%@”,[string3 substringWithRange:NSMakeRange(1,1)]); //从第一位开始 往后截取一位

字符串的替换:
创建字符串:NSString *str = @”nicekugou”;
方法1:
NSLog(@”%@”,[str stringByReplacingCharactersInRange:NSMakeRange(2,3)withString@”hello”]; //指定从第2个开始数3个字符 替换成”hello”
方法2:
NSLog(@”%@”,[str stringByReplacingOccurrencesOfString:@”nice”withString:”hello”]); //将nice替换成”hello”

基本数据类型转换为字符串:
NSInteger num1 = 13333; //创建基本数据类型
NSString *numstr1 = “13333”; //字符串

方法:
NSIntyeger num2=[numstr1 integerValue];

NSString *str = [NSString StringWithFormat:@”%ld”,num]; //活用字符串拷贝(替换)
if([str isEqualToString: num2]){} //isEqualToString判断是否相等
字符串类型转换成基本数据类型:
NSString *str=@”sgcxfs”;
Int a=[str charValue];//转换成char类型

if(num1 == [num2 integerValue]){} //integerValue转换为Integer

字符串功能:
//字符串全部大写
NSLog(@“%@”,[str uppercaseString]);
//字符串全部小写
[str lowercaseString];
//字符串首字母大写
[str capitalizedString];

判断字符串前缀和后缀:
hasPrefix:@”http” //前缀是否有http
hasSuffix:@”” //同理后缀是否有”“

字符串与数组的转换
NSInteger num1 = 133123123;
NSString * numStr = @”133123123”;

NSString * num1sz = [NSString stringWithFormat:@"%ld",num1];
NSLog(@"%@",num1sz);

if([num1sz isEqualToString:numStr]){
    NSLog(@"相等");
}else
{
    NSLog(@"不相等");
}
//字符串类型转成基本数据类型
NSInteger num2 = [numStr integerValue];
if(num1 == num2){  //num2可以替换成为 numStr integerValue
    NSLog(@"相等");
}else
{
    NSLog(@"不相等");
}

二、NSMutabaleString类
NSMutableString是可变字符串(动态增加或减少),继承于NSString,可以使用NSString的所有方法
可变的类:
可变的类一定要先初始化!
//类方法初始化
NSMutableString *mu = [NSMutableString string]; //继承NSString
//init实例方法初始化(且可使用String下的方法赋值)
NSMutableString *mstr=[[NSMutableString alloc] init];
//指定初始化方法,capacity是申请内存空间,但系统会根据字符串的增减自动调整内存大小(唯一比NSString多出来的方法)
NSMutableString *mStr2 = [[ NSMutableString alloc]initWithCapacity:0];

//(可变字符串用)赋值
[mStr setString:@”haha”];
//插入字符串
[mStr inserString:@”memeda”atIndex:3]; //从第3个字符开始插入
//删除字符串
[mStr deleteCharactersInRange:NSMakeRange(2,3)]; //从第2个字符开始 删除后三个字符

字面量(语法糖):
NSNumber *intNumber = @38;
NSNumber *charNumber = @’w’;

int age = 18;
NSNumber *ageNumber = @(age);
int gender = ‘w’;
NSNumber *genderNumber = @(gender);

NSNumber实现基本数据类型和OC对象类型的相互转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值