4.字符串和数值

进入苹果帮助文档的方法
1、shift+command+0
2、alt+鼠标左键,弹出的页面中,点击最下面的相关类的文档
文档中基本的信息:
Inherits from 继承关系
Conforms to 遵循什么协议
Framework 属于什么框架
Availability 什么时候可以使用
Declared in 声明在什么头文件里
Related documents 相关文件
Sample code 示例代码
OC,C字符串的互相转换
char *s = “Hello Object-C”;
NSString *str = @“Hello”;
C->OC
NSString *str1 = [NSString stringWithUTF8String:s];
NSLog(@“str1 = %@”,str1);
OC->C
NSLog(@“str2 = %s”,[str UTF8String]);
不可变字符串:NSString 创建之后不能改变内容和长度
创建一个字符串对象:
初始化方法: NSString *string1 = [[NSString alloc] initWithFormat:@"黑凤梅's age is %d",30];
    NSLog(@"string1 is %@",string1); NSString *string2 = [[NSString alloc] initWithFormat:@"黑凤梅's gender is %@",@"女" ];
    NSLog(@"string2 is %@",string2); initWithFormat:格式化,可接占位符
另一种方法字面量: NSString *string = @"黑凤梅";
    NSLog(@"string is %@",string);
NSString常用的方法
①获取字符串长度 length 无符号的长整型 unsigned long length = [str length];// 或者用点语法 string.length NSLog(@"str length is %lu",length);// 空格、汉字都占一个位,OC中一个位,两个字节 字符串的长度:在OC中不计算\0。
②获取字符串中某单个字符(利用下标characherAtIndex获取)注意不要越界
C语言中,字符创是由char(ASCII)字符组成
OC中,字符串是由unichar(Unicode)字符组成 unichar character = [string2 characterAtIndex:0]; NSLog(@"character is %C",character);// %C 可打印汉字
获取指定字符串的位置,rangOfString  输出两个值,下标location和长度length,都是长整型

③判断两个字符串的内容是否相同 isEqualToString,返回的是一个BOOL值,想等返回1,不相等返回0 BOOL isEqual = [string2 isEqualToString:string1]; NSLog(@"isEqual is %d",isEqual);
④比较两个字符串 compare,内部采用枚举NSComparisonResult,返回的是整型,返回-1,升序排列;返回0,相等;返回1,降序排列。
4.字符串和数值_第1张图片
代码: NSComparisonResult result = [@"fsf" compare:@"sfsf"]; NSLog(@"result is %ld",result);
⑤截取字符串
1、substringFromIndex:从指定位置的下标开始向后截取字符串,一直到结束 NSString *newString = [@“strawberry” substringFromIndex:2]; NSLog(@"newString is %@",newString);//结果为:rawberry 2、substringToIndex:从0开始截取到n-1下标的内容 NSString *newString1 = [@"strawberry" substringToIndex:4]; NSLog(@"newString1 is %@",newString1);//结果为:stra
3、substringWithRange:获取指定范围内的字符串
取范围用NSMakeRange()函数,第一参数表示从该下标开始,第二个参数表示取几个字符 NSString *newString2 = [@"strawberry" substringWithRange:NSMakeRange(3, 5)]; NSLog(@"newString2 is %@",newString2);//结果为:awber

⑥格式化拼接字符串 stringByAppendingFormat NSString *newStr = [@"hehe," stringByAppendingFormat:@" baobao %d",235]; NSLog(@"newStr is %@",newStr);//结果为:hehe,baobao235 拼接已知字符串 stringByAppendingString NSString *newStr1 = [@"hehe" stringByAppendingString:@" baobao"]; NSLog(@"newStr1 is %@",newStr1);//结果为:hehebaobao
⑦替换字符串 stringByReplacingCharactersInRange:NSMakeRange() withString:  第一个参数写需要代替的字符串的范围,第二个写替代之后的字符串 NSString *news = [string2 stringByReplacingCharactersInRange:NSMakeRange(length - 1 , 1) withString:@"男的"]; NSLog(@"news is %@",news); stringByReplacingOccurrencesOfString: withString: 前一个是需要代替的字符串,第二个写代替之后的字符串 NSString *news1 = [string2 stringByReplacingOccurrencesOfString:@"女" withString:@"男的"]; NSLog(@"news2 is %@",news1);

⑧字符串转换为int型 intValue(还有布尔型boolValue,浮点型floatValue等) NSString *numberStr = @"t"; BOOL number = [numberStr boolValue]; NSLog(@"%d",number);
⑨修改字符串的字母,全部大写(uppercaseString),全部小写(lowercaseString),首字母大写(capitalizedString)
⑩判断字符串是否以指定字符开头(hasPrefix:)或结尾(hasSuffix:)

可变字符串:NSMutableString 创建之后是一个动态可变的字符串,可以对原字符串对象进行增、删、改等操作 NSMutableString是NSString类的子类
创建可变字符串,容量为0,系统会自动根据可变字符串存放的内容,自动申请空间 NSMutableString *mStr = [[NSMutableString alloc] initWithCapacity:0];
NSMutableString除了继承父类NSString的方法还有一些常见的方法:
①设置内容setString方法
②格式化拼接appendFormat
③删除某一范围的字符deleteCharactersInRange
④从某个下标开始,插入一个指定的字符串insertString: atIndex:
⑤替换某一范围内的字符串replaceCharactersInRange: withString:

数值类:NSNumber 作用:实现基本数据类型与OC对象类型的互相转换 将整型转化为OC中的字符串 int number = 10; NSNumber *num = [NSNumber numberWithInt:number]; NSLog(@"num is %@",num);
将NSNumber *类型的对象还原基本类型 int result = [num intValue]; NSLog(@"result is %d",result);
使用NSNumber比较大小,NSNumber比较的是内容,NSComparisonResult也是构造枚举类型 NSNumber *number1 = @17; NSNumber *number2 = @1585; NSComparisonResult numberResult =  [number1 compare:number2]; NSLog(@"numberResult is %ld",numberResult);
值类:NSValue
作用:完成结构体和对象类型的互换,结构体类型如:NSRange,NSPoint,NSSize,CGSize等等
结构体(NSRange等)转换为NSValue NSRange range = {2,8}; NSValue *value = [NSValue valueWithRange:range]; NSLog(@"value is %@",value);
NSValue转换为结构体(NSRange等) NSRange newRange = [value rangeValue]; NSLog(@"newRange is %@",NSStringFromRange(newRange));

你可能感兴趣的:(4.字符串和数值)