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;

      }

 

9、計算字符串長度:

          CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" size:18]].width;

發佈了5 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章