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];
注意:如果字符串的内容完全是由数字组成的,可以不用@""。
NSString提供了一个方法length,可以使用length方法直接判断一个字符串的长度(字符个数)。
length的声明:
- (NSUInteger) length;
直接调用:
NSUInteger length = [a length];
或者是放在表达式中:
if ([a length] > 35)
{
NSLog(@"这个字符串长度在35个字符以上。")
}
length这个方法可以精确的处理各种语言,而不像在C语言中那样,一个中文字符占3个字节,length这里处理中文字符,一个中文字符就是一个字符,甚至它能够处理多国语言和混合语言,比如在一串字符中含有中文、俄文,英文、韩文,它能够准确的处理这些字符的数量。
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 的指针数值,而不是比较它们所指向的对象。
stringWithCapacity的声明:
+ (id) stringWithCapacity:(NSUInteger)capacity;
appendString:接收字符串,然后将其复制到接收对象的末尾。
appendString的声明:
- (void) appendString:(NSString *)aString;
appendFormat:将接收到的字符串附加在接收字符串的末尾。