Foundation框架中的可变字符串:NSMutableString

看官们,我们在上一章回中介绍了Foundation框架中的NSString,本章回中将介绍Foundation框架中的NSMutableString.

我们在上一章回中已经介绍过什么是可变字符串,框架中提供了NSMutableString类来表示可变字符串,它是NSString类的子类,因此我们在上一章回中介绍的字符串操作都适用于NSMutableString类的对象,也就是可变字符串,看官们知道其中的原因吗?有看官说是继承,没错,看来这位看官对继承的理解很准确。NSMutableString除了继承父类的这些操作外还提供了其它的操作,也就是我们要介绍的字符串操作:插入、替换和删除

字符串插入

字符串插入表示在字符串中的某个位置插入任意的字符或者字符串,常用的方法如下:

  • appendString: //表示在字符串的尾部插入参数所表示的字符串,它会修改原来的字符串;
  • insertString: atIndex: //表示在字符串第二参数所指的位置插入第一个参数所表示的字符串;

字符串替换

字符串替换表示把字符串中某个位置的字符替换成参数所表示的字符或者字符串,常用的方法如下:

  • setString: //表示把字符串中所有的字符替换为参数所表示的字符,它会修改原来的字符串
  • replaceCharactersInRange: withString: //表示把字符中第一个参数指定位置的字符替换成第二个参数所表示的字符

字符串删除

字符串删除表示把字符串中的某个位置的字符删除掉,常用的方法如下:

  • deleteCharactersInRange: //表示删除字符串中参数所指的位置字符;

关于字符串替换和删除操作有一些细节需要说明,在此做统一说明:这两种操作中都使用了NSRange类型的对象,该对象有两个变量,一个表示字符串的位置,另外一个表示字符的长度,比如:NSMakeRange(a,b)创建了一个NSRange类型的对象,如果把该对象用在字符串替换和删除操作中,那么在进行替换和删除操作时会在字符串的a位置替换或者删除数目为b的字符。总之,字符串的替换和删除操作,不但指定了替换或者删除操作在字符串中的具体位置,而且还指定了替换或者删除操作的字符数量。

介绍完理论知识后我们通过具体的代码来演示框架中关于可变字符串的操作,下面是代码

#import<Foundation/Foundation.h>

int main()
{
	//字符串初始化
	NSMutableString *str1 = [NSMutableString stringWithString: @"this is NSMutableString1"];
	NSMutableString *str2 = [NSMutableString stringWithFormat: @"apple"];
	// NSMutableString *str2 = [NSMutableString stringWithCapacity:5];

	NSLog(@" str1: %@",str1);
	NSLog(@" str2: %@",str2);

	//字符串的尾部插入数据
	str1 = [NSMutableString stringWithString: @"this is NSMutableString1"];
	[str1 appendString:str2];
	NSLog(@"append [%@] at [%@]",str2,str1);

	//字符串中指定位置插入数据
	[str1 insertString:str2 atIndex:1];
	NSLog(@"insert [%@] at index:1 [%@]",str2,str1);

	//字符串中替换所有的数据
	[str1 setString: @"this is NSMutableString1"];
  	NSLog(@"replace all %@",str1);

	//字符串中替换指定位置数据据
	[str1 setString: @"this is NSMutableString1"];
	[str1 replaceCharactersInRange:NSMakeRange(1,5) withString:@"abcd"];
  	NSLog(@"replace 5 char at index:1  %@",str1);

	//字符串删除指定位置的数据
	str1 = [NSMutableString stringWithString: @"this is NSMutableString1"];
	[str1 deleteCharactersInRange: NSMakeRange(6,3)];
  	NSLog(@"delete 3 char at index:6 of %@",str1);

	return 0;
}

为了方便大家理解,我们在代码中添加了相关的注释,大家可以自己动手去实践,并且写出程序的运行结果,下面是我编译运行后的结果:

 str1: this is NSMutableString1
 str2: apple
append [apple] at [this is NSMutableString1apple]
insert [apple] at index:1 [tapplehis is NSMutableString1apple]
replace all this is NSMutableString1
replace 5 char at index:1  tabcds NSMutableString1
delete 3 char at index:6 of this iSMutableString1

最后,我们对本章回的内容做一个总结:

  • 1.不可变字符串的操作在可变字符中可以正常使用,因为这是从父类继承来的操作;
  • 2.字符串的插入、替换和删除操作都在字符串指定的位置进行,而且这些操作都会修改原来的字符串;
  • 3.字符串的替换和删除操作不但在字符串中指定了替换和删除的具体位置,而且还指定了替换和删除字符的具体数量;

看官们,本章回的内容就介绍到这里,欲知后事如何且听下回分解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值