NSString(字符串)详细操作

    字符串是程序设计最常用的数据类型之一了。在Mac/iPhone编程中,苹果为我们提供了一个不同的字符串类型NSString。有别与普通的String为数据类型,NSString其实是一个对象类型。NSString是NSObject(Cocoa Foundation的基础对象)的子类,所以具有NSObject的所有特性,好的和好的… ….
小常识:
    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:[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;

      }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值