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