OC基础-零基础学习Objective-C:第三部分.NSString
2015-08-29 11:54
197 查看
NSString是Cocoa中用来处理字符串的类,属于Foundation框架下,它的根类是NSObject类,所以在使用NSString类的时候别忘了声明Foundation.h。
1.NSString类的对象的创建
字符串创建方法的声明:
+ (id) stringWithFormat:(NSString *)format,......;
创建字符串对象的方式一:直接赋值。
NSString *a = @"你的体重是60kg,身高是180cm。";
创建字符串对象的方式二:通过方法创建对象,并且可以通过参数的改变生成不同的字符串。
NSString *b;
b = [NSString stringWithFormat:@"你的体重是%dkg,身高是�m。",60,180];
连起来就是:
NSString *b = [NSString stringWithFormat:@"你的体重是%dkg,身高是�m。",60,180];
注意:如果字符串的内容完全是由数字组成的,可以不用@""。
2.判断NSString类的对像的长度
NSString提供了一个方法length,可以使用length方法直接判断一个字符串的长度(字符个数)。
length的声明:
- (NSUInteger) length;
直接调用:
NSUInteger length = [a length];
或者是放在表达式中:
if ([a length] > 35)
{
NSLog(@"这个字符串长度在35个字符以上。")
}
length这个方法可以精确的处理各种语言,而不像在C语言中那样,一个中文字符占3个字节,length这里处理中文字符,一个中文字符就是一个字符,甚至它能够处理多国语言和混合语言,比如在一串字符中含有中文、俄文,英文、韩文,它能够准确的处理这些字符的数量。
3.判断NSString字符串是否一样
isEqualToString:用来比较接收方和作为参数传过来的字符串之间是否相同,它会返回一个BOOL值来表示两个字符串之间是否相同。
isEqualToString的声明:
- (BOOL) isEqualToString:(NSString *)aString;
isEqualToString的方法调用:
if ([a isEqualToString:b])
{
NSLog(@"它们是一样的");
}
compare:将接受对象和传递过来的字符串逐个比较,并返回一个NSComparisonResult的enum枚举类型来显示比较结果。
compare的声明:
- (NSComparisonResult) compare:(NSString *)aString;
compare的枚举:
enum
{
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
注意:比较两个字符串是否相同应该用isEqualToString,而不能仅仅比较字符串的指针。即不能 if(a == b) ,因为 == 运算符只是比较 a 和 b 的指针数值,而不是比较它们所指向的对象。
4.判断NSString字符串内是否还包含了别的字符串。判断一个字符串是否以另一个字符串开头,或者判断一个字符串是否以另一个字符串结尾。
hasPrefix:判断是否开头的声明:
- (BOOL) hasPrefix:(NSString *)aString;
hasSuffix:判断时候结尾的声明:
- (BOOL) hasSuffix:(NSString *)aString;
调用两个方法:
NSString *fileName = @"fraft-chapter.pages";
if ([fileName hasPrefix:@"draft"])
{
//输入你想做的事
}
if ([fileName hasSuffix:@"draft"])
{
//输入你想做的事
}
rangeOfString:判断字符串某处是否包含其他字符串。会返回一个NSRange结构体来告诉你与之匹配的字符串位于什么位置以及个数,如果没有找到则返回的位置为NSNotFound。
rangeOfString的声明:
- (NSRange) rangeOfString:(NSString *)aString;
rangeOfString的方法调用:
NSRange range = [fileName rangeOfString:@"chapter"];
5.NSString的可变子类NSMutableString
NSString类创建的字符串是不可变的,就是指一旦创建变不能更改,可以对它执行生成新的字符串、查找字符、将它与其他字符串进行比较,但是不能删除字符活着添加字符来改变它。为了方便对字符串的修改,Cocoa中提供了一个NSString的子类NSMutableString类,这个类中声明的字符串均是可以更改的。
NSMutableString的创建方法和他的父类NSString几乎一样,最简单的创建方法便是和变量一样直接声明并赋值。常用的则是通过stringWithCapacity方法进行创建,并且分配NSMutableString对象的容量,这里的容量只是建议大小,可以根据实际情况自动扩大。
stringWithCapacity的声明:
+ (id) stringWithCapacity:(NSUInteger)capacity;
stringWithCapacity的调用:
NSMutableString *string = [NSMutableString stringWithCapacity:42];
appendString:接收字符串,然后将其复制到接收对象的末尾。
appendString的声明:
- (void) appendString:(NSString *)aString;
appendFormat:将接收到的字符串附加在接收字符串的末尾。
appendFormat的声明:
- (void) appendFormat:(NSString *)format,......;
appendString和appendFormat方法的调用:
NSMutableString *string = [NSMutableString stringWithCapacity:50];
[string appendString:@"Hello there"];
[string appendFormat:@"human %d!",39];
输出结果为:“Hello there human 39!”
deleteCharactersInRange:删除字符串中的指定字符。
deleteCharactersInRange的声明:
- (void) deleteCharactersInRange:(NSRange)aRange;
由于NSMutableString是NSString类的子类,所有NSMutableString拥有所有NSString类的属性和方法,通常deleteCharactersInRange和NSString的对象方法rangeOfString一起使用。
NSMutableString *friends = [NSMutableString stringWithCapacity:50];
[friends appendString:@"James BethLynn Jack Evan"];
NSRange jackRange = [friends rangeOfString:@"Jack"];
jackRange.length++;
[friends deleteCharactersInRange:jackRange];
1.NSString类的对象的创建
字符串创建方法的声明:
+ (id) stringWithFormat:(NSString *)format,......;
创建字符串对象的方式一:直接赋值。
NSString *a = @"你的体重是60kg,身高是180cm。";
创建字符串对象的方式二:通过方法创建对象,并且可以通过参数的改变生成不同的字符串。
NSString *b;
b = [NSString stringWithFormat:@"你的体重是%dkg,身高是�m。",60,180];
连起来就是:
NSString *b = [NSString stringWithFormat:@"你的体重是%dkg,身高是�m。",60,180];
注意:如果字符串的内容完全是由数字组成的,可以不用@""。
2.判断NSString类的对像的长度
NSString提供了一个方法length,可以使用length方法直接判断一个字符串的长度(字符个数)。
length的声明:
- (NSUInteger) length;
直接调用:
NSUInteger length = [a length];
或者是放在表达式中:
if ([a length] > 35)
{
NSLog(@"这个字符串长度在35个字符以上。")
}
length这个方法可以精确的处理各种语言,而不像在C语言中那样,一个中文字符占3个字节,length这里处理中文字符,一个中文字符就是一个字符,甚至它能够处理多国语言和混合语言,比如在一串字符中含有中文、俄文,英文、韩文,它能够准确的处理这些字符的数量。
3.判断NSString字符串是否一样
isEqualToString:用来比较接收方和作为参数传过来的字符串之间是否相同,它会返回一个BOOL值来表示两个字符串之间是否相同。
isEqualToString的声明:
- (BOOL) isEqualToString:(NSString *)aString;
isEqualToString的方法调用:
if ([a isEqualToString:b])
{
NSLog(@"它们是一样的");
}
compare:将接受对象和传递过来的字符串逐个比较,并返回一个NSComparisonResult的enum枚举类型来显示比较结果。
compare的声明:
- (NSComparisonResult) compare:(NSString *)aString;
compare的枚举:
enum
{
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
注意:比较两个字符串是否相同应该用isEqualToString,而不能仅仅比较字符串的指针。即不能 if(a == b) ,因为 == 运算符只是比较 a 和 b 的指针数值,而不是比较它们所指向的对象。
4.判断NSString字符串内是否还包含了别的字符串。判断一个字符串是否以另一个字符串开头,或者判断一个字符串是否以另一个字符串结尾。
hasPrefix:判断是否开头的声明:
- (BOOL) hasPrefix:(NSString *)aString;
hasSuffix:判断时候结尾的声明:
- (BOOL) hasSuffix:(NSString *)aString;
调用两个方法:
NSString *fileName = @"fraft-chapter.pages";
if ([fileName hasPrefix:@"draft"])
{
//输入你想做的事
}
if ([fileName hasSuffix:@"draft"])
{
//输入你想做的事
}
rangeOfString:判断字符串某处是否包含其他字符串。会返回一个NSRange结构体来告诉你与之匹配的字符串位于什么位置以及个数,如果没有找到则返回的位置为NSNotFound。
rangeOfString的声明:
- (NSRange) rangeOfString:(NSString *)aString;
rangeOfString的方法调用:
NSRange range = [fileName rangeOfString:@"chapter"];
5.NSString的可变子类NSMutableString
NSString类创建的字符串是不可变的,就是指一旦创建变不能更改,可以对它执行生成新的字符串、查找字符、将它与其他字符串进行比较,但是不能删除字符活着添加字符来改变它。为了方便对字符串的修改,Cocoa中提供了一个NSString的子类NSMutableString类,这个类中声明的字符串均是可以更改的。
NSMutableString的创建方法和他的父类NSString几乎一样,最简单的创建方法便是和变量一样直接声明并赋值。常用的则是通过stringWithCapacity方法进行创建,并且分配NSMutableString对象的容量,这里的容量只是建议大小,可以根据实际情况自动扩大。
stringWithCapacity的声明:
+ (id) stringWithCapacity:(NSUInteger)capacity;
stringWithCapacity的调用:
NSMutableString *string = [NSMutableString stringWithCapacity:42];
appendString:接收字符串,然后将其复制到接收对象的末尾。
appendString的声明:
- (void) appendString:(NSString *)aString;
appendFormat:将接收到的字符串附加在接收字符串的末尾。
appendFormat的声明:
- (void) appendFormat:(NSString *)format,......;
appendString和appendFormat方法的调用:
NSMutableString *string = [NSMutableString stringWithCapacity:50];
[string appendString:@"Hello there"];
[string appendFormat:@"human %d!",39];
输出结果为:“Hello there human 39!”
deleteCharactersInRange:删除字符串中的指定字符。
deleteCharactersInRange的声明:
- (void) deleteCharactersInRange:(NSRange)aRange;
由于NSMutableString是NSString类的子类,所有NSMutableString拥有所有NSString类的属性和方法,通常deleteCharactersInRange和NSString的对象方法rangeOfString一起使用。
NSMutableString *friends = [NSMutableString stringWithCapacity:50];
[friends appendString:@"James BethLynn Jack Evan"];
NSRange jackRange = [friends rangeOfString:@"Jack"];
jackRange.length++;
[friends deleteCharactersInRange:jackRange];
相关文章推荐
- OC基础-零基础学习Objective-C:第二部分.封装、继承和多态
- Objective-C遍历数据的几种方式
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
- Objective-C 中一些基本概念
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
- 【Objective-C】面向对象—类和对象
- 【Objective-C】面向对象—三大特性
- NSString对文件的操作
- 【Objective-C】01-面向对象
- OC基础-零基础学习Objective-C:第一部分.类和对象
- Objective-C(内存管理)
- javascript引用类型之对象Object
- Deleting JPA Entity Objects
- GSON Empty Json Object to null
- Objective-C语法之代码块(block)的使用
- Objective-C代码规范(1)
- iOS js与objective-c的交互(转)
- 字典方法setValue:ForKey setObject:ForKey的区别
- 原生js的Function,Array,Object构造函数的prototype原型方法扩展