小常识:
NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT.
@是Cocoa元素的前缀,很多地方我们会看到,比如接下来...
1,创建一个NSString对象
简单方法:
NSString*aString=@"我是个NS字符串!"; //除了引号外加@,没别的区别不需要操心内存管理
NSString*aString=[[NSString alloc] initWithFormat:@"这也是个NS字符串!"];//要去retain和release这个字符串,系统不管。
*initWithFormat是其中一个初始化方法,常用的还有
//从一个文件读取需要的内容
-(id)initWithContentsOfFile:(NSString*)path encoding:(NSStringEncoding)enc error:(NSError**)error
//从一个地址读取需要的内容
-(id)initWithContentsOfURL:(NSURL*)url encoding:(NSStringEncoding)enc error:(NSError**)error
*以上方法得到的NSString的retain值为1,所以记得release掉阿~~
2,使用一个NSString对象
NSString*aString=@"This is a NSString";
NSLog(aString); //在控制台输出信息,该函数方法需要一个NSString对象作为参数
NSLog("这样不会好使的");
NSLog(@"这样就会好使拉~");
再比如设置一个UIView的标题:
[UIView setTitle:aString];
[UIView setTitle:@"标题"];
UIView.title = aString;
3,释放NSString
[aString release];//对象将被系统释放掉咯
*记得不要释放直接用 = @”xxx”的NSString对象哟,系统会管的~
4,快速使用一个NSString
NSLog([NSString stringWithFormat:@"一个NS字符串"]);
//这种快速方法返回的是一个retain为1,autorelease的对象,不需要操心它的内存管理
5,常用方法
nString=[aString substringToIndex:4];//nString将得到aString中的前四个字符
占位符:
%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:[NSStringstringWithFormat:@"%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 = [NSStringstringWithFormat:@"%d", aNumber];
2、字符串与日期相互转换
//字符串转换为日期
NSDateFormatter* dateFormat = [[NSDateFormatteralloc] init]; //实例化一个NSDateFormatter对象
[dateFormatsetDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //设定时间格式,这里可以设置成自己需要的格式
NSDate *date =[dateFormatdateFromString:@"1980-01-01 00:00:01"];
//日期转换为字符串
NSDateFormatter* dateFormat = [[NSDateFormatteralloc] init]; //实例化一个NSDateFormatter对象
[dateFormatsetDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //设定时间格式,这里可以设置成自己需要的格式
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDatedate]];
常用字符串操作
1、获得字符串长度
NSString* str1=@"MACOS Pro";
NSLog(@"长度是%d",[str1 length]);
2、两个字符串连接
NSString* str2=@"MACOS Pro";
NSString* str3=@"Leopard";
NSString* str4=[str2stringByAppendingString:str3];
NSLog(str4,nil);
NSString* str5=[str2stringByAppendingFormat:@" %d",10];
NSLog(str5,nil);
3、插入字符串
NSMutableString*string1=[NSMutableString stringWithFormat:@"Mac X"];
[string1insertString:@"OS " atIndex:4];
NSLog(string1,nil);
4、删除字符串
NSMutableString*string2=[NSMutableString stringWithFormat:@"删除字符串"];
[string2deleteCharactersInRange:NSMakeRange(0, 2)];
NSLog(string2,nil);
5、抽取部分字符串
NSString* string6=@"This isMac OS X";
NSString*nstr1,*nstr2,*nstr3;
//从开头抽取字符串
nstr1=[string6substringToIndex:4];
NSLog(nstr1,nil);
//抽取末位位置的字符串
nstr2=[string6substringFromIndex:8];
NSLog(nstr2,nil);
//抽取指定范围的字符串
nstr3=[string6substringWithRange: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 = [string1substringToIndex:3];
NSLog(@"string2:%@",string2);
-substringFromIndex:以指定位置开始(包括指定位置的字符),并包括之后的全部字符
NSString *string1 =@"This is a string";
NSString *string2 = [string1substringFromIndex:3];
NSLog(@"string2:%@",string2);
-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
NSString *string1 =@"This is a string";
NSString *string2 = [string1substringWithRange: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=[strdataUsingEncoding:NSUTF8StringEncoding];
Dateformat用法:
-(NSString *) getDay:(NSDate*) d
{
NSString *s ;
NSDateFormatter *format =[[NSDateFormatter alloc] init];
[formatsetDateFormat:@"YYYY/MM/dd hh:mm:ss"];
s = [formatstringFromDate:d];
[format release];
return s;
}
9、计算字符串长度:
CGFloatw = [title sizeWithFont:[UIFont fontWithName:@"Arial"size:18]].width;
其实动态获取字符串NSString的CGSize的大小最主要的还是APINSString类提供的一个方法
sizeWithFont: constrainedToSize
例如:
CGSize feelSize = [feeling sizeWithFont:[UIFontsystemFontOfSize:12] constrainedToSize:CGSizeMake(190,200)];
float feelHeight = feelSize.height;
10、在很多语言如 java , ruby , python中都有将字符串切分成数组或者将数组元素以某个间隔字符串间隔形成新的数组。其实NSArray也提供了这样的功能。
使用-componentsSeparatedByString:来切分NSArray。如:
引用
NSString*string = @”one:two:three”;
NSArray*aArray = [string componentsSeparatedByString:@":"];
用-componentsJoinedByString:来合并NSArray中的各个元素并创建一个新的字符串,如:
string = [aArraycomponentsJoinedByString:@","];
这样,上面的数组就中的各个元素就以”,”分割形成一个字符串。