nt main(int argc, const char * argv[])
{
@autoreleasepool {
//创建常量字符串
NSString* str1 = @"In fact, Objective-C is very simple.";
//创建空字符串,给予赋值
NSString* str2 = [[NSString alloc] init];
str2 = str1;
NSLog(@"str2: %@",str2);
//使用initWithString方法
NSString* str3 = [[NSString alloc] initWithString:str1];
NSLog(@"str3: %@",str3);
//将一个字符串复制到另一个字符串
NSString* str4 = [NSString stringWithString:str1];
NSLog(@"str4: %@",str4);
//将一个字符串复制到另一个字符串结果,即连接两个字符串
NSLog(@"str1 concatentation str2: %@",[str1 stringByAppendingString:str2]);
//计算字符串的长度(length)
NSLog(@"Length of str1: %lu",[str1 length]);
//验证两个字符串是否相等
if ([str1 isEqualToString:str2]) {
NSLog(@"str1 == str2 ");
}else{
NSLog(@"str1 != str2");
}
//将字符串转化为大写
NSLog(@"Uppercase str1: %@",[str1 uppercaseString]);
//将字符串转化为小写
NSLog(@"Uppercase str1: %@",[str1 lowercaseString]);
//返回索引i的Unicode字符
NSLog(@"%hu",[str1 characterAtIndex:10]);
}
return 0;
NSString方法
+(id) stringWithContentsOfFile:path encoding:enc error:err
创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误
+(id) stringWithContentsOfURL:url encoding:enc error:err
创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误
+(id) string
创建一个新的空字符串
+(id) stringWithString:nsstring
创建一个新的字符串,并将其设置为nsstring
-(id)initWithString:nsstring
将分配的字符串设置为nsstring
-(id) initWithContentsOfFile:path encoding:enc error:err
将字符串设置为path制定的文件的内容
-(id) initWithContentsOfURL:url encoding:enc error:err
将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误
-(id) (UNSIgned int)length
返回字符串中的字符数目
-(unichar)characterAtIndex:i
返回索引i的Unicode字符
-(NSString *)substringFromIndex:i
返回从i开始知道结尾的子字符串
-(NSString *)substringWithRange:range
根据指定范围返回子字符串
-(NSString *)substringToIndex:i
返回从该字符串开始到索i的子字符串
-(NSComparator *)caseInsensitiveCompare:nsstring
比较两个字符串,忽略大小写
-(NSComparator *)compare:nsstring
比较两个字符串
-(BOOL)hasPrefix:nsstring
测试字符串是否以nsstring开始
-(BOOL)hasSuffix:nsstring
测试字符串是否以nsstrng结尾
-(BOOL)isEqualToString:nsstring
测试两个字符串是否相等
-(NSString *) capitalizedString
返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)
-(NSString *)lowercaseString
返回转换为小写的字符串
-(NSString *)uppercaseString
返回转换为大写的字符串
-(const char*)UTF8String
返回转换为UIF-8字符串的字符串
-(double)doubleValue
返回转换为double的字符串
-(float)floatValue
返回转换为浮点值的字符串
-(NSInteger)integerValue
返回转换为NSInteger整数的字符串
-(int)intValue
返回转换为整数的字符串
NSMutableString方法
NSMutableString类可以用来创建可以更改字符的字符串对句.因为是NSString的子类,所以可以使用NSString类的所有方法.
+(id) stringWithCapacity:size
创建一个字符串,初始包含size的字符
-(id) initWithCapacity:size
使用初始容量为size的字符串来初始化字符串
-(void) setString:nsstring
将字符串设置为nsstring
-(void) appendString:nsstring
在接收者的末尾附加nsstring
-(void) deleteCharactersInRange:range
删除指定range中的字符
-(void) insertString:nsstring atIndex:i
以索引i为起始位置插入nsstring
-(void) replaceCharactersInRange:range withString:nsstring
使用nsstring替换range指定的字符
-(void) replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range
根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)
NSInteger、NSUInteger
当你不知道程序运行哪种处理器架构时,你最好使用NSInteger,因为在有可能int在32位系统中只是int类型,而在64位系统,int可能变是long型。除非不得不使用int/long型,否则推荐使用NSInteger。
从上面的定义可以看出NSInteger/NSUInteger是一种动态定义的类型,在不同的设备,不同的架构,有可能是int类型,有可能是long类型。
NSUInteger是无符号的,即没有负数,NSInteger是有符号的。
NSNumber
有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?
NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中等。
NSInteger intVal = 123;
NSNumber *numberVal = [NSNumber numberWithInteger:intVal];
NSMutableArray* array = [NSMutableArray array];
[array addObject:intVal]; //错误,intVal不是一个对象类型
[array addObject:numberVal]; //正确
Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。
+ (NSNumber*)numberWithChar: (char)value;
+ (NSNumber*)numberWithInt: (int)value;
+ (NSNumber*)numberWithDouble:(double)value;
+ (NSNumber*)numberWithFloat: (float)value;
+ (NSNumber*)numberWithBool: (BOOL) value;
...
将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:
- (char)charValue;
- (int)intValue;
- (float)floatValue;
- (double)doubleValue;
- (BOOL)boolValue;
...