天天看點

Object-C 字元串

C和OC字元串的互相轉換

// c 轉oc 字元串

char *p = "zhangsan";
NSString *str1 = [NSString stringWithCString:p encoding:NSUTF8StringEncoding];
NSLog(@"%@",str1);
           

//将oc字元串轉為c字元串

NSString *str2 = @"hello world";
const char *p1 = [str2 UTF8String];
NSLog(@"%s",p1);
           

//判斷字元串是否相等

NSString *str = @"Hello world";
    NSString *str1 = @"hello world";
       //isEquoTo 用來判斷兩個字元串是否相等
    BOOL vavl =  [str isEqualTo:str1];
    if (vavl) {
        NSLog(@"相等");
    }
    else
    {
        NSLog(@"不相等");
    }
    //按ASICC碼比較
    NSComparisonResult result =[str compare:str1];
   // NSComparisonResult 類型重定義 本質上是NSInterger
   //枚舉值
   //NSOrderedAscending -1l 是升序
   //NSOrderedDescending 1  是降序
   // NSOrderedSame   // 0 一樣大
    if (result == NSOrderedSame) {
        NSLog(@"一樣大");
    }
    else if(result == NSOrderedDescending)
        NSLog(@"第一個大");
    else if(result == NSOrderedAscending)
    {
        NSLog(@"第二個大");
    }
     NSString *str2 = @"sina.com.cn";
           

//判斷是字首還是字尾

// hasPrefix 是字首判斷方法
    // hassuffix 是字尾判斷方法
    BOOL vavl1 = [str2 hasPrefix:@"sina"];
    if (vavl1) {
        NSLog(@"是字首");
    }
    vavl1 = [str2 hasSuffix:@".cn"];
    if (vavl1) {
        NSLog(@"是字尾");
           

//将一個數字字元串轉成普通類型

NSString *str6 = @"333";
    NSLog(@"%d",[str6 intValue]);
    NSLog(@"%ld",[str6 integerValue]);
    NSLog(@"%g",[str6 doubleValue]);
    NSLog(@"%g",[str6 floatValue]);
           

//讀取子串

NSString *str = @"hello world";
 //str substringFromIndex 是從給定的下标開始,一直讀到最後
 NSLog(@"%@",[str substringFromIndex:2]);
 //substringToIndex 是從第0号元素開始,讀取到給定下标,但不包含給定下标元素
 NSLog(@"%@",[str substringToIndex:2]);
           

//查找子串 world

//NSRange 傳回值類型    是一個struct  傳回是在原字元串的位置和長度
    NSRange range = [str rangeOfString:@"world"];
    if (range.location == NSNotFound) //存在這一個位置
    {
        NSLog(@"沒有找到");
    }
    else
    {
        NSLog(@"%ld,%ld",range.location,range.length);
    }
           

// 通過一個c 語言的結構體去查找子串,傳回一個子串

NSRange range1 = {1,3};
    NSLog(@"%@",[str substringWithRange:range1]);
           

//字元串拼接

NSString *str = @"hello world";
    NSMutableString *str2 = [[NSMutableString alloc] initWithString:str];
    NSLog(@"%@",str2);
    //appendString 是自動在原字元串末尾添加字元串
    [str2 appendString:@"zuibang"];
    NSLog(@"%@",str2);
    [str2 appendFormat:@"%d",1605];
     NSLog(@"%@",str2);
           

//設定

[str2 setString:@"hello Ios"];
     NSLog(@"%@",str2);
           

//在指定的位置插入字元串

//insertString 下标值 不能超過原字元串最大下标,否則程式崩潰
    [str2 insertString:@"zhangsan" atIndex:3];
    //改
    //replaceCharactersInRange (NSRange) NSMakeRange
           

// 将指定範圍内的字元串修改為設定的字元串

[str2 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"lisi"];
    NSLog(@"%@",str2);
           

// 字元串替換

[str2 replaceOccurrencesOfString:@"zhangsan" withString:@"lisi" options:NSLiteralSearch range:NSMakeRange(0, [str2 length])];
    //第一個 是要被替換的子串
    //第二個 最後在原字元中要顯示的
    //第三個  預設NSLiteralSearch
    //第四個  NSMakeRange  位置  0  長度 整個字元串的長度
    NSLog(@"%@",str2);
           

//删除 指定範圍内的子串

[str2 deleteCharactersInRange:NSMakeRange(4, 5)];
    NSLog(@"%@",str2);