OC 03 NSString

  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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值