OC - 第四章 字符串

//                      第四章 字符串

  //OC字符串:unichar(unicode碼)組成 C語言:ASCII碼

  //不可變字符串 NSString 自身的長度以及內容都是不可變的
  {
            {
                NSString *str1 = @"change";
                str1 = @"IOS";
                //@"change" = @"IOS";錯誤寫法
            }

            //1.創建字符串的五種方式:
            {
                //第一種:
                NSString *str = @"我勒個去";//語法糖  常量字符串 字面量
                //第二種:
                NSString *_str = [[NSString alloc]initWithString:@"我勒個去"];
                //第三種: 通過一個字符串創建另外一個字符串 用的很少
                NSString *str5 = [[NSString alloc]initWithString:str];
                //第四種: 創建一個格式化字符串
                NSString *str1 = [[NSString alloc]initWithFormat:@"%@, 大溼胸, 師傅被妖怪抓走了", str];//字符串拼接
                //第五種:
                NSString *str4 = [NSString stringWithFormat:@"%@ %@",str1, str1];//便利構造器
            }

            //2.字符串的常用方法
            {
                NSString *str = @"helloworld";
                //1.從索引處開始截取,截取到字符串最後
                NSString *result = [str substringFromIndex:5];

                //2.從字符串開始截取到索引處,但是不包括索引處的字符
                NSString *str1 = [str substringToIndex:5];

                //3.截取指定範圍內的字符
                NSString *str2 = [str substringWithRange:NSMakeRange(2, 5)];
                NSRange range = {2, 5};
                NSString *str4 = [str substringWithRange:range];

                //4.字符串的拼接
                NSString *str3 = [str1 stringByAppendingString:str2];

                //5.判斷兩個字符串是否相等
                BOOL result1 = [str1 isEqualToString:str2];

                //6.字符串比較的返回值, 升序, 相等, 降序
                NSComparisonResult comparisonResult = [str1 compare:str2];
                switch (comparisonResult) {
                    case NSOrderedAscending:
                        NSLog(@"str1比str2小");
                        break;
                    case NSOrderedSame:
                        NSLog(@"str1和str2相等");
                        break;
                    case NSOrderedDescending:
                        NSLog(@"str1比str2大");
                        break;
                    default:
                        break;
                }

                //7.判斷一個字符串是否以**開頭
                [str hasPrefix:@"Jen"];

                //8.判斷一個字符串是否以**結尾
                [str hasSuffix:@"vi"];

                //9.是否包含某個字符串
                [str containsString:@" l"];

                //10.大小寫轉換
                NSString *strA = [str uppercaseString];
                NSString *strB = [str lowercaseString];
                //每個單詞的首字母大寫, 其餘小寫
                NSString *strC = [str capitalizedString];

                //11.替換
                {
                    //根據範圍來替換
                    NSString *str = @"蒼蒼老師.rmvb";
                    NSString *str1 = [str stringByReplacingCharactersInRange:NSMakeRange(5, 4) withString:@"avi"];

                    //將str中所有的"蒼"替換成"波波"
                    NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"蒼" withString:@"波波"];
                    NSLog(@"%@",str2);
                }

                //12.OC和C語言字符串的轉換
                {
                    //將C字符串轉換成OC字符串
                    char *a = "iPhone";
                    NSString *str = [[NSString alloc]initWithUTF8String:a];

                    //將OC字符串轉換成C字符串
                    const char *q = [str UTF8String];
                }
        }
   }

  //可變字符串 NSMutableString 繼承不可變字符串 引用不可用字符串方法仍需返回
  {
            //1.字符串的定義
            NSMutableString *mStr = [[NSMutableString alloc]initWithString:@"ione"];

            //2.插入字符串
            [mStr insertString:@"Ph" atIndex:1];

            //3.拼接字符串
            [mStr appendString:@"6s"];

            //4.根據範圍刪除
            [mStr deleteCharactersInRange:NSMakeRange(3, 3)];
            NSLog(@"%@",mStr);

            //5.替換:替換後可以任意長度
            [mStr replaceCharactersInRange:NSMakeRange(3, 2) withString:@"one6s plus"];
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章