Oc 03字符串(NSString)
1. 结构体类型 NSPoint...
NSPoint point = NSMakePoint(10, 20); //定义一个点
NSLog(@"%@",NSStringFromPoint(point)); //打印
NSRect rect = NSMakeRect(0, 0, 100, 100); //定义一个坐标为(0,0)长宽为100的矩形
NSLog(@"%@",NSStringFromRect(rect));//打印
NSSize size = NSMakeSize(200, 200); //尺寸
NSLog(@"%@",NSStringFromSize(size)); //打印
NSRange range = NSMakeRange(0, 3); //范围
NSLog(@"%@",NSStringFromRange(range));//打印
2.使用NSValue将简单、复杂数据类型封装为对象
// 封装数据
NSValue *pointValue = [NSValuevalueWithPoint:point];
NSLog(@"%@",pointValue);
NSValue *rectValue = [NSValue valueWithRect:rect];
NSLog(@"%@",rectValue);
NSValue *sizeValue = [NSValue valueWithSize:size];
NSLog(@"%@",sizeValue);
NSValue *rangeValue = [NSValuevalueWithRange:range];
NSLog(@"%@",rangeValue);
NSValue *pointValue1 = [NSValuevalueWithPoint:point];
NSLog(@"%@",pointValue1);
// 解封装
NSPoint point1 = [pointValue1 pointValue];//调用NSValue中的pointValue方法(相当于getter方法),把封装好的数据pointValue1.pointValue //点语言也可以
3. 数值类型 NSNumber 对象初始化、使用NSNumberFormatter对NSNumber与NSString转化
//类型转换 @10,@(10),@(number)
//封装
NSInteger number = 1078472;
NSNumber *num = @(number); //直接把整型转换为NSNumber对象类型
NSNumber *value1 = [NSNumbernumberWithInteger:number];
NSLog(@"%@",value1);
BOOL flag = YES;
NSNumber *value2 = [NSNumbernumberWithBool:flag];
NSLog(@"%@",value2);
char character = 'C';
NSNumber *value3 = [NSNumbernumberWithChar:character];
NSLog(@"%@",value3);
//解封装
NSInteger a = value1.integerValue;
NSLog(@"value1 = %ld",a);
BOOL b = value2.boolValue;
NSLog(@"value2 = %hhd",b);
NSNumber *num1 = @10;
//格式转换
//1.创建一个格式转换器
NSNumberFormatter *formatter = [[NSNumberFormatteralloc]init];
//2.设置格式
[formatter setNumberStyle: NSNumberFormatterSpellOutStyle];
//3.转换数据
NSString *string = [formatter stringFromNumber:num];
NSLog(@"%@",string);<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
4. NSString字符串处理 增删查改...
//1.各种初始化
//最简初始化方式
NSString *string1 = @"hello";
//常规初始化
NSString *string = [[NSStringalloc]initWithFormat:@"hello%@",@"world"];
NSLog(@"string = %@",string);
// 便利构造初始化
//类名去调的(类方法),更方便
NSString *string2 = [NSStringstringWithFormat:@"yes"];
//2.字符串拼接 stringByAppend... stringByAppendingFormat
NSString *string1 = @"hello";
NSString *string2 = @"world";
//一般的字符串拼接方法
NSString *appendString1 = [string1stringByAppendingString:string2];
NSLog(@"%@",appendString1);
//格式字符串的拼接方法
NSString *appendString2 = [string1stringByAppendingFormat:@"%@",string2];
NSLog(@"%@",appendString2);
//初始化拼接
NSString *appendString3 = [NSStringstringWithFormat:@"%@%@",string1,string2];
NSLog(@"%@",appendString3);
//3.字符串截取 subString...
NSString *string = [[NSStringalloc]initWithFormat:@"helloworld"];
//从头截到下标为2的,不包含下标为2的
NSString *subString1 = [stringsubstringToIndex:2];
NSLog(@"subString1 = %@",subString1);
//从下标为2的开始截,包含下标为2的
NSString *subString2 = [stringsubstringFromIndex:2];
NSLog(@"subString2 = %@",subString2);
//从下标为1的开始截(包含自己),长度为3的
NSString *subString3 = [stringsubstringWithRange:NSMakeRange(1,3)];
NSLog(@"subString3 = %@",subString3);
//4.字符串的长度
NSInteger len = string.length;
NSLog(@"%ld",len);
// 5.字符串查询
NSString *string = [NSStringstringWithFormat:@"www.baidu.com"];
//查询头部
BOOL flag = [string hasPrefix:@"www"];
if (flag == YES) {
NSLog(@"find");
}else{
NSLog(@"not find");
}
//查询尾部
BOOL flag1 = [string hasSuffix:@"com"];
if (flag1 == YES) {
NSLog(@"find");
}else{
NSLog(@"not find");
}
//查找字符串的位置:rangeOfString
NSRange range = [string rangeOfString:@"baidu"];
if (range.length ==0 && range.location ==NSNotFound) {
NSLog(@"not found");
} else{
NSLog(@"found");
NSLog(@"range = %@",NSStringFromRange(range));
}
//6.字符串替换 stringByReplacing...
NSString *string1 = @"hello";
NSString *replaceStr = [string1stringByReplacingOccurrencesOfString:@"h"withString:@"99988"];
NSLog(@"replaceStr =%@",replaceStr);
//7.字符串比较 isEqualTo... compare
NSString *string2 = @"abc";
NSString *string3 = @"Abc";
//比较两个字符串的值是否相等(只能用方法,不能用 ==)
if ([string2 isEqualToString:string3]) {
NSLog(@"equal");
}else{
NSLog(@"not equal");
}
/*
NSOrderedAscending = -1L,升序,小于
NSOrderedSame, 等于0
NSOrderedDescending 降序大于1
*/
NSComparisonResult result = [string2compare:string3];
if (result == NSOrderedAscending) { //(result == -1)
NSLog(@"升序"); //string2 < string3
}else if(result == NSOrderedSame){ //(result == 0)
NSLog(@"相同"); //string2 = string3
}else{
NSLog(@"降序");//string2 >string3}
//8.数值转换 integerValue...
NSString *string = @"4000";
NSString *string2 = @"2000";
NSInteger a = string2.integerValue;
NSInteger b = string.integerValue;
NSInteger sum = a + b;
NSLog(@"sum = %ld",sum);
//9.大小写转换 uppercaseString、lowercaseString、capitalizedString首字母大写
NSString *string1 = @"aBc";
NSString *upStr = string1.uppercaseString; //小写转大写
NSString *lowStr = string1.lowercaseString; //大写转小写
NSString *capStr = string1.capitalizedString;//首字母大写
NSLog(@"upStr = %@,lowStr = %@,capStr = %@",upStr,lowStr,capStr);
5. NSMutableString可变字符串处理
/*
NSString类型是不可变类型的字符串,OC中有专门的可变类型字符串NSMutableString;
NSMutableString继承自NSString,所以他可以直接使用NSString的方法,即可以直接作为不可变字符串使用;
几乎所有NSString的运算方法,都同时对应着其可变类型的算法。
一般NSString类型运算都是通过返回值给定一个新NSString对象,而NSMutableString的运算是直接改变原有字符串,所以返回值多为void.
*/
//常规初始化方法
//便利构造初始化
NSMutableString *mutableStr = [NSMutableStringstringWithFormat:@"hello"];
// 插入字符串"00000"
[mutableStr insertString:@"0000"atIndex:2];
NSLog(@"%@",mutableStr);
// 删除
[mutableStr deleteCharactersInRange:NSMakeRange(2,4)];
NSLog(@"%@",mutableStr);
//替换
[mutableStr replaceCharactersInRange:NSMakeRange(0,3) withString:@"00"];
NSLog(@"%@",mutableStr);