小常识: NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT. @是Cocoa元素的前缀,很多地方我们会看到,比如接下来...
1, 创建一个NSString对象
简单方法:
*initWithFormat是其中一个初始化方法,常用的还有
*以上方法得到的NSString的retain值为1,所以记得release掉阿~~
2,使用一个NSString对象
再比如设置一个UIView的标题:
3,释放NSString
*记得不要释放直接用 = @”xxx” 的NSString对象哟,系统会管的~
4,快速使用一个NSString
//这种快速方法返回的是一个retain为1,autorelease的对象,不需要操心它的内存管理
5,常用方法
占位符:
%c 一个单一的字符
%d 一个十进制整数
%i 一个整数
%e, %f, %g 一个浮点数
%o 一个八进制数
%s 一个字符串
%x 一个十六进制数
%p 一个指针
%n 一个等于读取字符数量的整数
%u 一个无符号整数
%[] 一个字符集
%% 一个精度符号
//格式化字符串:占位符(由一个%加一个字符组成)
如:
int textCount=textField.text.length; //创建一个整型变量textCount,用于获取输入文本框的文字长度
NSString *astring = [NSString stringWithFormat:@"你输入的字符串长度是:%d“,textCount];//创建一个字符变量astring ,取得文字数据类型,把整数转换为文字数据
label1.text=astring ; //标签显示字符变量astring的数据内容
textField.text=NULL; //将文本框中输入的文字清空
如:
int i = 1;
int j = 2;
NSString *astring = [[NSString alloc]initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];
NSLog(@"astring:%@",astring);
[astring release];
字符串转换
1、字符串与数值互相转换
//字符串转换为数值
NSString *aNumberString = @"123";
int i = [aNumberString intValue];
//数值转换为字符串
int aNumber = 123;
NSString *aString = [NSString stringWithFormat:@"%d", aNumber];
2、字符串与日期相互转换
//字符串转换为日期
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init]; //实例化一个NSDateFormatter对象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //设定时间格式,这里可以设置成自己需要的格式
NSDate *date =[dateFormat dateFromString:@"1980-01-01 00:00:01"];
//日期转换为字符串
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init]; //实例化一个NSDateFormatter对象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //设定时间格式,这里可以设置成自己需要的格式
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
1、获得字符串长度
NSString* str1=@"MAC OS Pro";
NSLog(@"长度是 %d",[str1 length]);
2、两个字符串连接
NSString* str2=@"MAC OS Pro";
NSString* str3=@" Leopard";
NSString* str4=[str2 stringByAppendingString:str3];
NSLog(str4,nil);
NSString* str5=[str2 stringByAppendingFormat:@" %d",10];
NSLog(str5,nil);
3、插入字符串
NSMutableString* string1=[NSMutableString stringWithFormat:@"Mac X"];
[string1 insertString:@"OS " atIndex:4];
NSLog(string1,nil);
4、删除字符串
NSMutableString* string2=[NSMutableString stringWithFormat:@"删除字符串"];
[string2 deleteCharactersInRange:NSMakeRange(0, 2)];
NSLog(string2,nil);
5、抽取部分字符串
NSString* string6=@"This is Mac OS X";
NSString *nstr1,*nstr2,*nstr3;
//从开头抽取字符串
nstr1=[string6 substringToIndex:4];
NSLog(nstr1,nil);
//抽取末位位置的字符串
nstr2=[string6 substringFromIndex:8];
NSLog(nstr2,nil);
//抽取指定范围的字符串
nstr3=[string6 substringWithRange:NSMakeRange(5,2)];
NSLog(nstr3,nil);
6、从文件读取字串:initWithContentsOfFile方法
NSString *path = @"astring.text";
NSString *astring = [[NSString alloc] initWithContentsOfFile:path];
NSLog(@"astring:%@",astring);
[astring release];
7、抽取子串
-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringToIndex:3];
NSLog(@"string2:%@",string2);
-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringFromIndex:3];
NSLog(@"string2:%@",string2);
-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
NSLog(@"string2:%@",string2);
const char *fieldValue = [value cStringUsingEncoding:NSUTF8StringEncoding];
const char *fieldValue = [value UTF8String];
8、NSString 转 NSData
NSString* str= @"kilonet";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
Date format用法:
-(NSString *) getDay:(NSDate *) d
{
NSString *s ;
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY/MM/dd hh:mm:ss"];
s = [format stringFromDate:d];
[format release];
return s;
}
9、计算字符串长度:
CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" size:18]].width;
其实动态获取字符串NSString的CGSize的大小最主要的还是API NSString类提供的一个方法
sizeWithFont: constrainedToSize
例如:
CGSize feelSize = [feeling sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(190,200)];
float feelHeight = feelSize.height;
10、在很多语言如 java , ruby , python中都有将字符串切分成数组或者将数组元素以某个间隔字符串间隔形成新的数组。 其实NSArray也提供了这样的功能。
使用-componentsSeparatedByString:来切分NSArray。 如: