日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Objective-C 日记③ 字符串

發(fā)布時間:2025/3/17 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Objective-C 日记③ 字符串 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、創(chuàng)建字符串、類方法 

  公式創(chuàng)建NSString

  +(id) stringWithFormat:(NSString *) format,……;

eg:

  NSString *height;

  height=[NSString stringWithFormat:@"高度是: %d 長度: %d",10,20];

得到的字符串:“高度是: 10 長度: 20”

?

注意:

  省略號:表示可以接收多個參數(shù),類似NSLog();

  加號:“+” Object-C運(yùn)行時生成一個類的時候,會創(chuàng)建一個代表該類的類對象(類對象包含:指向超類的指針、類名、指向類方法列表的指針)

  如何在聲明方法時添加了加號,該方法就為類方法.這個方法屬于類對象(而不是類的實(shí)例對象),常用于創(chuàng)建新的實(shí)例。我們稱這種用來創(chuàng)建新對象的類方法為工廠方法(stringWithFormat就是一個工廠方法)

?

  如果該方法將會在某個對象實(shí)例中運(yùn)行 方法用前導(dǎo)減號(-)來開始聲明

  如果創(chuàng)建一個實(shí)例對象或者訪問一些全局類數(shù)據(jù),建議使用前導(dǎo)加號(+)將它聲明為類的方法

二、關(guān)于大小、字符串比較

關(guān)于大小:

  NSString中包含一個方便的方法length,返回的是字符串中的字符個數(shù)

  使用:unsigned int length = [height length];

  說明:NSString的length方法能夠準(zhǔn)確無誤處理國際字符串:比如中文以及使用Unicode國際字符標(biāo)準(zhǔn)的字符串這點(diǎn)和C語言不同,C語言可能出現(xiàn)一個字符占用的空間可能多于一個字符

?

字符串比較:

  A:isEqualToString:用來比較接收方和當(dāng)作參數(shù)傳遞來的字符串。返回一個BOOL(YES or NO 不是true,false)類型來表示字符串內(nèi)容是否相同。格式:-(BOOL) isEqualToString:(NSString *) aString;

  eg:

NSString *str1 = @"hello pepe";NSString *str2=[NSString stringWithFormat:@"hello %s","pepe"];if([str1 isEqualToString:str2]){NSLog(@"相同");}else{NSLog(@"不同");}

  結(jié)果當(dāng)然是“相同”

  

?????

  B:compare方法 聲明如下:-(NSComparisonResult) compare: (NSString *) string

  ?compare將接收對象和傳遞來的字符串逐個字符的進(jìn)行比較,返回一個NSComparisonResult(enum型數(shù)據(jù))來顯示比較結(jié)果。

  eg:

    

BOOL result=[@"kaka" compare: @"pepe"];NSLog(@"%s","kaka vs pepe");NSLog(@"%d",result);result=[@"kaka" compare: @"kaka"];NSLog(@"%s","kaka vs kaka");NSLog(@"%d",result);result=[@"pepe" compare: @"kaka"];NSLog(@"%s","pepe vs kaka");NSLog(@"%d",result);

  結(jié)果:

  

??????

  注意:

    比較兩個字符串是否相等時請用isEqualToString而不能僅僅比較字符串的指針值;

    eg: ? ?

    if([str1 isEqualToString:str2]){???NSLog(@"相同"); }???????????????????????????? VS????? ? ? if( str1==str2){? NSLog(@"相同");??? }

    注意二者的區(qū)別:1、==運(yùn)算符只判斷str1和str2的指針數(shù)值,而不是它們所指的對象

            2、如果想檢查兩個對象的標(biāo)識此時可以使用==

            3、如果想查看等價性使用isEqualToString
?? ??? ???   
?? ?  ?

    compare 比較字符串返回的結(jié)果有下面幾種:

    

? ? ? ? ? ?

?

  C:不區(qū)分大小寫比較

    -(NSComparisonResult) compare: (NSString *) string options: (unsigned) mask;??[k?m'p?ris?n]??比較;對照;比喻;比較關(guān)系

    options參數(shù)是一個位掩碼,可以使用位或運(yùn)算符(|)來添加選項(xiàng)標(biāo)記:

      NSCaseInsensitiveSearch:不區(qū)分大小寫比較; ?[in'sens?tiv]?adj. 感覺遲鈍的,對…沒有感覺的

      NSLiteralSearch:進(jìn)行完全比較,區(qū)分大小寫; ? ?['lit?r?l]?adj. 文字的;逐字的;無夸張的

      NSNumericSearch:比較字符串字符個數(shù),而不是字符值;??[nju:'merik]?數(shù);數(shù)字?adj. 數(shù)值的(等于mumerical);數(shù)字的

?

    eg:

      

? ? ? ? ? ? ? ?

?

?

?  D:字符串中是否包含其他字符串

    查詢頭尾是否包含某字符串:hasPrefix 、hasSuffix

    -(BOOL) hasPrefix :(NSString * ) string; ?檢查字符串是否以某個字符串開頭。 ? ? ? ??[,pri:'fiks, 'pri:fiks]?加前綴;將某事物加在前面

    -(BOOL) hasSuffix: (NSString *) string; ? 檢查字符串是否以某個字符串結(jié)尾。 ? ? ? ? ['s?fiks, s?'fiks]?vt. 添后綴?n. [語]后綴;下標(biāo)

?  eg:   

? ? ? ? ? ?

?  查詢字符串內(nèi)是否包含某字符串:rangeOfString 返回一個NSRange struct可以告訴你字符串相匹配的部分在哪里以及匹配的字符個數(shù)

    -(NSRange) rangeOfString:(NSString *) string;

  location用來存放字段范圍的起始位置

  length是該范圍內(nèi)所含元素的個數(shù)

  eg:    

? ? ? ? ??

?

  

三、可變性   ?

  NSString是不可變的字符串,如果需要使用可變字符串,Cocoa提供了一個NSString子類NSMutableString。

  格式

    -(id) stringWithCapacity:(unsigned) capacity;

  可通過appendString、appendFormat來添加新字符串:-(void)appendString:(NSString *)string ; -(void) appendFormat:(NSString *)format……;

  說明:

    appendString接收參數(shù)string,然后將其復(fù)制到字符串對象的結(jié)尾

    appendFormat與stringWithFormat類似,但它是將格式化的字符串附加到接收字符串的尾部,而不是創(chuàng)建新的字符串對象;

  eg:   

? ? ? ? ?

  使用deleteCharactersInRange方法刪除字符串中的字符:

    -(void)deleteCharactersInRange:(NSRange) range;

  因NSMutableString是NSString的子類所以NSString的方法NSMutableString都可以使用

  eg:  

? ? ? ? ?

?

?

?

?

?

?

?

?

?

?

?

?

?


作者:PEPE
出處:http://pepe.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

總結(jié)

以上是生活随笔為你收集整理的Objective-C 日记③ 字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。