Foundation框架中的可变字符串:NSMutableString
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.字符串的替换和删除操作不但在字符串中指定了替换和删除的具体位置,而且还指定了替换和删除字符的具体数量;
看官们,本章回的内容就介绍到这里,欲知后事如何且听下回分解
以上是关于Foundation框架中的可变字符串:NSMutableString的主要内容,如果未能解决你的问题,请参考以下文章