OC字串NSString,ocnsstring

來源:互聯網
上載者:User

OC字串NSString,ocnsstring

==========================

物件導向編程進階和字串

==========================

Δ一.類的設計模式—單例

【單例】程式允許過程中,有且僅有一塊記憶體空間存在,這種類的設計模式成為單例

【問】什麼時候用到單例

【答】資料共用的時候

 

1.單例的書寫格式

以+(加號)開頭的方法,可以直接被類調用;-(減號)開頭方法 ,是對象方法,用對象來調用;

 

2.認識單例

【見singleDemo】

 

【注】單例方法名字隨便起,但是盡量保證見名知意!

 

 

練習1:建立一個單例類single,有一個typeid屬性。 建立一個dog類,一個cat類;

要求:dog類中負責修改single類的屬性值,cat負責取出typeid值。

【思考】如果不用單例,如何??

 

二.get和set方法以及.屬性

 

練習2:建立一個cat類,代碼實現get和set方法,cat類中有speed 成員變數。

要求:第一種方式用get、set方式

  第二種方式用@property方式

練習3:要求練習1中的題目用@property方式修改

 

====================

字串

====================

 

一.認識oc中的字串

oc中以 @“” 包含的內容,是字串;無論@“”包含了字串的長度為多少。

【例如】:@“a”,@“123”,@“_%^&*”,

【注】c語言中字串是用“”,oc中是用@“”

 

NSString

【見strDemo1】

 

//聲明了一個類型為NSString 的字串str

        //NSString 是一個類的類型,用法跟基礎類型一樣

        //NSString 這個類是蘋果公司封裝好的一個字串類

        

        //定義了一個str 這個物件變數,給賦初始值為@"hello world!"

        NSString* str = @"hello world!";

        

        //c字串

//        char a[64]="hello";

//        a[0],a[1]...

        

//        NSString* str1 = [[NSString alloc]initWithFormat:@"%@",str];

        

//        NSLog(@"%@",str1);

        

        //求字串長度 --- length

        //oc中 常用int類型,NSUInteger不常用

        NSUInteger length = [str length];

        NSLog(@"%ld",length);

        

        //∆萬能拼接字串

        NSString* Str1 = @"yudejun";

        NSString* Str2 = @"xijinping";

        

        //oc 中 字串的格式轉化符是:%@

        //編譯器在碰到格式化轉化符的時候,會自動替換成後面參數所對應的變數值

        NSString* Str3 = [NSString stringWithFormat:@"%@ and %@",Str1,Str2];

        NSLog(@"%@",Str3);

        

        //【練習】

        //請拼接2個字串,第一個字串內容為@“你好”,第二個字串為@“中國”;拼接完成之後列印出長度

        NSString* str4 = @"你好";

        NSString* str5 = @"中國";

        NSString* str6 = [NSString stringWithFormat:@"%@%@",str4,str5];

        NSString* str6 = [NSString stringWithFormat:@“%d”,324123];

        NSLog(@"%ld",[str6 length]);

        

        

        //字串的轉化

        NSString* StrInt = @"123456789987654321";

        int a = [StrInt intValue];

        NSLog(@"%d",a);

        

        long long b = [StrInt longLongValue];

        

        //@“0.1234”

        //NSString* StrFloat = @"0.1234";

        float c = [@"0.1234" floatValue];

        

        //練習 : 計算@“1234” @“0.25” @“199” @“0.5” 這四個數的值,並列印出來

        

        

        //字串分割

        //【注】字串分割要在字串有效長度範圍內

        NSString* tempStr = @"helloworld";

//        NSString* FStr = [tempStr substringFromIndex:5];

//        NSString* FStr = [tempStr substringToIndex:5];

        

        NSRange range = {2,3};

        NSString* FStr = [tempStr substringWithRange:range];

 

        NSLog(@"%@",FStr);

        

        //字串的比較

        NSString* tem1 = @"abc";

        NSString* tem2 = @"abc";

        

        //判斷tem1 是否等於 tem2

        if ([tem1 isEqualToString:tem2]) {

            NSLog(@"相等");

        }

        else

        {

            NSLog(@"不相等");

        }

        

        NSComparisonResult result = [tem1 compare:tem2];

        if (result == NSOrderedAscending) {

            NSLog(@"tem2 > tem1");

        }

        else if (result == NSOrderedDescending)

        {

            NSLog(@"tem2 < tem1");

            

        }else if (result == NSOrderedSame)

        {

            NSLog(@"tm2 == tem1");

        }

        

        //BOOL 讀作布爾類型,只有2種狀態,真或者假,可以用1、0也可以用yes 、no

        //字串首碼和尾碼判斷

        NSString* string = @"http://www.baidu.com";

        BOOL have = [string hasPrefix:@"http://"];

        if (have == YES) {

            NSLog(@"是http://開頭");

        }

        else

        {

            NSLog(@"不是http://開頭");

        }

        

        BOOL havejiewei = [string hasSuffix:@"com"];

        if (havejiewei) {

            NSLog(@"是com結尾");

        }

        else

        {

            NSLog(@"不是com結尾");

        }

        

        //轉成大寫

        NSLog(@"%@",[string uppercaseString]);

        

        //轉成小寫

        [string lowercaseString];

        

        //所有單字首大寫

        [string capitalizedString];

        

        //尋找字串中的某個字串,進行替換,第一個參數是要尋找的字串,第二個字串為需要替換成的字串

        string = [string stringByReplacingOccurrencesOfString:@"www" withString:@"googl"];

        NSLog(@"%@",string);

        

        

        NSString* tmp = @"ceshishuju";

        

        //=========================================

        NSMutableString* m_str = [[NSMutableString alloc]initWithString:tmp];

        //字串的修改

        [m_str setString:@"hello world"];

        

        //字串的追加

        [m_str appendFormat:@" nihao"];

        

        //字串的刪除

        NSRange rang = {1,2};

        [m_str deleteCharactersInRange:rang];

        

        //字串的插入

        [m_str insertString:@"xijinping" atIndex:3];

        

        NSLog(@"%@",m_str);

        

        //∆以NSMutable開頭的都是可變類型,以NSMutable開頭定義的對象都是可以對資料進行修改;

        

//        NSString //不可變字串

//        NSMutableString//可變字串

//        NSArray// 不可變數組

//        NSMutableArray//可變數組

        

//        NSDictionary//不可變字典

//        NSMutableDictionary//可變字典

        

        //可變的意思是可以對這個類型定義的變數進行修改或者刪除操作

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.