NSMakeRange 用法

typedef NSRange *NSRangePointer;

NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
    NSRange r;
    r.location = loc;
    r.length = len;
    return r;
}
NSMakeRange是一个结构体类型,包含两个参数,位置和长度。表示字符串要传进来从哪里开始的位置和需要的长度。

substringWithRange需要传进来NSRange类型,表示从哪里开始截取和长度,返回字符串类型。
例如,        
<span style="white-space:pre">	</span>NSString *bankCardString = [respDict objectForKey:kQFTrackData];
<span style="white-space:pre">	</span>NSRange bankRang = NSMakeRange(0, 3);
<span style="white-space:pre">	</span>NSString *bankStr1 = [bankCardString substringWithRange:bankRang];

substringToIndex表示从第一个字符串开始截取,到指定长度位置,但是不包括该指定位置位置字符串,
例如        
<span style="white-space:pre">	</span>NSString *balanceDateString = [respDict objectForKey:kQFTime];
        NSString *ymdString = [balanceDateString substringToIndex:10];
        //再从已有字符串中截取
        //年
        NSString *yearStr = [ymdString substringToIndex:4];

substringFromIndex表示从指定位置开始截取字符串到最后,所截取位置包含该指定位置。

        NSRange monthRang = NSMakeRange(5, 2);
        NSString *monthStr = [ymdString substringWithRange:monthRang];
        //日
        NSString *dayStr = [ymdString substringFromIndex:8];



1.定义一个字符串a, 截取a 的某一个部分,复制给b, b必须是int型

  NSString *a = @"1.2.30";

    int  b= [[a substringWithRange:NSMakeRange(4,2)] intValue]; 

  NSLog(@"a:%@  \n",a  );

  NSLog(@"b:%d",b  );

 

Output : 2011-07-05 11:49:08.170 Q[4005:207]   a:1.2.30  

2011-07-05 11:49:08.172 Q[4005:207]            b:30


解析如下:substringWithRange: 专门截取字符串的一块肉 

           NSMakeRange(4,2)    从第4个字符开始截取,长度为2个字符,(字符串都是从第0个字符开始数的哦~!)

             b = [a intValue]; 将 a 转换为 整数型

       b = [a floatValue];   将 a 转换为 小数型

       b = [a boolValue]; 将 a 转换为 布尔型(true /  false)

       b = [a integerValue]; 将 a 转换为 整数型

            b = [a longLongValue]; 将 a 转换为 长整型


2。 字符串截取到第n位  (substringToIndex: n)(第n 位不算再内)

 

- (void)viewDidLoad

{

    NSString  *a = @"i like long dress";

  NSString *b = [a substringToIndex:4];

    NSLog(@"\n b: %@",b);

}

 b: i li

    


3。字符串从第n 位开始截取,直到最后 (substringFromIndex:n)(包括第 n 位)

 

- (void)viewDidLoad

{

    NSString  *a = @"i like long dress";

    NSString *b = [a substringFromIndex:4];

    NSLog(@"\n b: %@",b);

}

 

 

      

 

      

b: ke long dress

   
 

NSMutableString  为可变的字符串

   NSString      为不可变的字符串

 

-(void)viewDidLoad

{

   NSMutableString *a = [[NSMutableString  alloc]initWithString:@"123456798"];

   NSLog(@" \n a:  %@\n",a);

   [a deleteCharactersInRange:NSMakeRange(1,2)];

   NSLog(@" \n a:  %@\n",a);

    [a release];

}

 

2011-07-05 20:59:34.169 Q[9069:207]   a: 123456798 

2011-07-05 20:59:34.171 Q[9069:207]   a: 1456798 



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值