iOS开发系列之Objective-C基础:NSString字符串类型(二)

今天继续来说一下字符串,接下来的知识点比较零碎,不过不用担心,我不会说的太多,重点放在后面的可变字符串上,好了现在开始行动。

昨天我们说到将字符串转化为基本数据类型,今天我们将从字符串分割开始讲起,废话不多说,贴代码:

// 4.用字符分割字符串
NSString *str1 = @"ab,c@de,fg@h,i@jk";
NSArray *arr1 = [str1 componentsSeparatedByString:@","];
NSArray *arr2 = [str1 componentsSeparatedByString:@"@"];
		
NSLog(@"%@",arr1);
NSLog(@"%@",arr2);
输出的结果分别为:(ab  、c@de、fg@h、i@jk) ;(ab,c、de,fg、h,i 、jk)。上面分别是以' , ' 和 '@' 符号为分隔符,分割出不同的子串。

再说下面一个,访问指定位置字符:

// 5.访问指定位置字符
NSString *str2 = @"abcdefg";
		
char c = [str2 characterAtIndex:4];  // 注意:位置是 0~n
NSLog(@"%c",c);
输出结果为:e 。

截取字符串:

// 6.截取字符串
NSString *str3 = @"abcdefghijklmn";
		
  // 1)从头到指定位置
NSString *subStr1 = [str3 substringToIndex:5];
  // 2)从指定位置到尾
NSString *subStr2 = [str3 substringFromIndex:5];
  // 3)指定范围截取
  //  NSRange 表示范围,参数(位置,长度)
NSRange range = NSMakeRange(3, 5);
NSString *subStr3 = [str3 substringWithRange:range];
		
NSLog(@"subStr1 = %@, subStr2 = %@, subStr3 = %@",subStr1,subStr2,subStr3);
输出结果为:subStr1 = abcde, subStr2 = fghijklmn, subStr3 = defgh  。这当中有一个NSRange,请注意:它是一个结构体,不是类,初学者很容易混淆,它在OC中是这样定义的:

typedef struct _NSRange {
    NSUInteger location;  //位置
    NSUInteger length;  //长度
} NSRange;
这个结构体经常用到,在这里就不赘述了。

由于NSString是不可变字符串,所以如果要增加字符串的内容,不能直接在本字符串内添加,只能借助另外的字符串变量,将前面的若干字符串拼接在一起。

// 7.拼接字符串(也可以直接用格式化输出的形式)
NSString *str4 = @"abc";
NSString *str5 = @"123";
NSString *strings = [str4 stringByAppendingString:str5];
		
NSLog(@"str4 + str5 = %@",strings);
输出结果为:str4 + str5 = abc123 .不过后面会说到可变字符串,那就不用这么麻烦了。

再说一下查找字符串:

// 8.查找字符串
NSString *str6 = @"abcdefg";
NSString *subString = @"cde";

// 在str6中找subString
NSRange range = [str6 rangeOfString:subString];
if(range.location != NSNotFound)
{
	NSLog(@"%@ 包含 %@,位置是:%ld, 长度为:%ld",str6,subString,range.location,range.length);
}
else
{
	NSLog(@"没找着!");
}
输出结果为: abcdefg 包含 cde, 位置是: 2, 长度为: 3 。

最后一个,替换字符串:

// 9.替换字符串
NSString *str7 = @"我是帅哥";
NSString *str8 = [str7 stringByReplacingOccurrencesOfString:@"我" withString:@"你也"];
		
NSLog(@"str7 = %@, str8 = %@",str7,str8);
输出结果为: str7 = 我是帅哥 , str8 = 你也是帅哥 。哈哈~!

终于把这些零碎的说完了,其实关于字符串的知识点还有很多很多,这里根本讲不完,大家可以无聊的时候查一查苹果官方文档,那玩意儿虽然比较拗口,英语不好的人很难看下去,不过,想干这行,自己选的哭着也要看!呜呜~












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值