// NSString
// 创建常量字符串
NSString *astring = @"This is a String!";
// 创建空字符串,给予赋值。
NSString *astringq = [[NSStringalloc] init];
astring = @"This is a String!";
NSLog(@"astringq:%@",astringq);
[astring release];
// 提升速度:initWithString方法
NSString *astringr = [[NSStringalloc] initWithString:@"This is a String!"];
NSLog(@"astring:%@",astringr);
[astring release]; //只要有alloc就有release;
//创建格式化字符串:占位符(由一个%加一个字符组成)
//这类方法称为简便(convenience)方法或工厂方法,并且返回自动释放的对象,使用了自动释放池
//便利构造器 [类名类名With...] 不用release
int i = 1;
int j = 2;
NSString *astringe = [NSStringstringWithFormat:@"%d.This is %i string!",i,j];
NSLog(@"astring:%@",astringe);
//- (BOOL)isEqualToString:(NSString *)aString;
// isEqualToString 比较的是两个字符串的值
NSString *astring01 = @"this is a String!";
NSString *astring02 = @"this is a String!";
BOOL result = [astring01 isEqualToString:astring02];
NSLog(@"astring01 isEqualToString:astring02 result:%d",result);
// “==”比较的是两个字符串的地址,字符串是相同的字符串常量,只是变量不同,OC不会再开辟一个内存,astring011和astring022 指向一个常量区
NSString *astring011 = @"This is a String!";
NSString *astring022 = @"This is a String!";
BOOL result2 = astring011 == astring022;
NSLog(@"astring011 == astring022 result:%d",result2);
// - (NSComparisonResult)compare:(NSString *)astring
// NSComparisonResult:NSOrderedSame 0 /NSOrderedAscending 1 /NSOrderedDescending -1
NSComparisonResult result3 = [astring01 compare:astring02];
NSLog(@"NSComparisonResult result3:%ld",result3);
// 字符的长度
NSString *urlString = [[NSStringalloc] init];
NSLog(@"urlInput length = %ld",[urlString length]);
/*
表示:...的值
- (double)doubleValue;
- (float)floatValue;
- (int)intValue;
- (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0);
- (long long)longLongValue NS_AVAILABLE(10_5, 2_0);
- (BOOL)boolValue NS_AVAILABLE(10_5, 2_0);
*/
// convert string to int
NSString *aNumberString = @"123";
int x = [aNumberString intValue];
NSLog(@"%d",x);
// convert int to string
int aNumber = 123;
NSString *aString = [NSStringstringWithFormat:@"%d", aNumber];
NSLog(@"%@",aString);
//-----------------------------------------------------------------------------------------//
/*
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方法
+(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) replaceOccurrencesOf
String:nsstring withString:
nsstring2 options:opts range:range
根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)
NSMutableString
[aString substringToIndex:([aString length]-1)];//字符串删除最后一个字符
//字符串删除最后一个字符
NSRange range = {0,1};
[aStr deleteCharactersInRange:range];
NSString是不可变的,意思是他声明的对象我们不可以改变,如果要改变,可以使用它的子类:NSMutableString
你可以使用类方法:stringWithCapacity来创建一个新的NSMutableString,声明如下:
* (id) stringWithCapacity: (unsigned) capacity:
可按如下方法声明一个新的可变字符串:
NSString *str1;
Str1 = [NSMutableString stringWithCapacity:42];
可以使用appendString或appendFormat来对可变字符串操作:
- (void)appendString: (Nsstring *) aString;
- (void) appendFormat: (NSString *) Format;
appendString 接受参数aString,然后将其复制到接受对象的末尾。
appendFormat类似,他将格式化的字符串附加在接受对象的末尾,而不是创建新的对象。
EXP:
NSMutableString *string;
string = [NSMutableString stringWithcapacity:50];
[string appendString: @”hello,there”];
[string appendFormat: @”human %d!”, 39];
这段代码的string最后被赋值为:hello,there human 39!
你还可以使用deleteCharactersInRange:方法来删除字符串中的字符:
- (void) deleteCharactersInRange: (NSRange) range;
通常将deleteCharactersInRange: 和rangeOfString:连在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比较和其他任何功能。
例如,你列了一个所有朋友列表,你突然又不喜欢Jack了,想把他从朋友列表里删除:
//朋友列表初始化
NSMutableString *friends;
friends = [NSMutableString stringWithcapacity: 50];
[friends appendString: @”level fang jack even”];
//找到jack并且删除
NSRange jackRange;
jackRange = [friends rangeOfString: @”jack”];
jackRange.length++; //eat the space that follows
[friends deleteCharactersInRange: jackRange];