2015.04.22(Objective_C----NSString和NSMutableString)

一、NSString的几种主要方法的使用

//

//  main.m

//  NSString_01

//

//  Created by mac on 15-4-22.

//  Copyright (c) 2015 mac. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        char *p = "Hello world!";

        

        NSString *str = @"Hello world!";

        

        __unused int a = 10;

        

        __unused long b =10;

        

        __unused NSInteger c = 10;

        

        NSLog(@"length is %zd",str.length);

        

        NSString *str1 = [[NSString alloc] initWithCString:p encoding:NSUTF8StringEncoding];

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

        

        // NSString 转化为 char

        __unused const char *p1 = [str1 UTF8String];

        NSLog(@"p1 is %s",p1);

        

        // 格式化输出

        const char *p2 = "QF";

        NSInteger a1 = 10;

        CGFloat b1 = 1.01;

        NSString *str3 = [[NSString alloc] initWithFormat:@"%s%zd%.2f",p2,a1,b1];

        NSString *str4 = [NSString stringWithFormat:@"%s%zd%.2f",p2,a1,b1];

        NSLog(@"格式化输出:%@ %@",str3,str4);

        

        NSString *str5 = @"Hello";

        NSString *str6 = @"World!";

        // 字符串追加

        NSString *str7 = [str5 stringByAppendingString:str6];

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

        NSLog(@"str7 is %@,str8 is %@",str7,str8);

        

        // 字符串中是否包含某一个前缀或者后缀

        // str7字符串的头部是否存在字符 He

        BOOL ret = [str7 hasPrefix:@"He"];

        if(ret){

            NSLog(@"str7 字符串头部存在字符 He");

        }else{

            NSLog(@"不存在...");

        }

        // str7字符串尾部是否存在字符 World

        BOOL ret1 = [str7 hasSuffix:@"World!"];

        if(ret1){

            NSLog(@"str7 字符串尾部存在字符 World!");

        }else{

            NSLog(@"不存在...");

        }


        

        // 字符串比较

        NSString *str9 = @"welcome to qf";

        NSString *str10 = @"Hello worlf";

        

        /*

         compare:比较后的返回值

         NSOrderedAscending 升序

         NSOrderedSame 相当

         NSOrderedDescending 降序

         */

         //  从左往右一个一个字符串比较 直到出现ASCII不相等的情况立即返回比较结果

        NSInteger ret3 = [str9 compare:str10];

        if(ret3 == NSOrderedAscending){

            NSLog(@"str9 小于 str10");

        }else if(ret3 == NSOrderedSame){

            NSLog(@"str9 等于 str10");

        }else{

            NSLog(@"str9 大于 str10");

        }

        

        // 字符串内容的比较

        if([str9 isEqualToString:str10]){

            NSLog(@"str9 str10相等");

        }else{

            NSLog(@"str9 str10不相等");

        }

        

        NSString *str11 = @"enter your";

        NSString *str12 = @"please enter your password!";

        /*

         rangeOfString 的返回值 NSRange

         typedef struct _NSRange {

         NSUInteger location; 位置 起始字符在当前查找字符串中处于第几个字符

         NSUInteger length;  长度 从被查找到的位置开始计算的字符串长度

         } NSRange;

         */

        // str2中查找str11的字符 返回第一个出现str11字符的位置和长度

        NSRange range = [str12 rangeOfString:str11];

        // 判断这个字符串对象是否被找到写法

        if(range.location != NSNotFound && range.length != 0){

            NSLog(@">>%zd %zd",range.location,range.length);

        }else{

            NSLog(@"没有找到该类型的商品!");

        }

        

        // 字符串提取

        

        // 指定位置开始一直读取到字符串的末尾

        // index 不能超过str12.length

        NSString *str13 = [str12 substringFromIndex:18];

        NSLog(@"str13 is %@",str13);

        

        // 要求截取到enter之后

        // 指定一个index 从字符串的开始一直截取到index位置止

        NSString *str14 = [str12 substringToIndex:12];

        NSLog(@"str14 is %@",str14);

        // str12中提取enter your

        NSString *str15 = [str12 substringWithRange:[str12 rangeOfString:@"enter your"]];

        NSLog(@"str15 is %@",str15);

    

        // 分割字符串 分割后的结果会保存在数组中

        // 参数:使用指定参数的字符串分割该字符串对象

        NSArray *arr = [str12 componentsSeparatedByString:@" "];

        NSLog(@"arr is %@ %@ %@ %@ %@",arr,arr[0],arr[1],arr[2],arr[3]);

        

        // NSString 基本数据类型的转化

        NSString *str16 = @"100";

        NSInteger i = [str16 integerValue];

        NSLog(@"i is %zd",i);

        

        //遍历字符串

        NSString *str17 = @"componentsSeparatedByString:";

        for (int i=0;i<str17.length;i++){

            //NSString *myChar = [str17 substringWithRange:NSMakeRange(i, 1)];

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

            // 返回char类型字符

            char myChar = [str17 characterAtIndex:i];

            NSLog(@"%c",myChar);

        }

    }

    return 0;

}


二、NSMutableString类的几种主要方法的使用

//

//  main.m

//  NSMutableString_01

//

//  Created by mac on 15-4-22.

//  Copyright (c) 2015 mac. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

#if 0

        // 不可变字符串 NSString

        // 可变字符串 继承自NSString 可以使用NSString的所有方法

        __unused NSMutableString *str1 = [[NSMutableString alloc] init];

        __unused NSMutableString *str2 = [[NSMutableString alloc]initWithString:@"wahaha"];

        __unused NSMutableString *str3 = [NSMutableString string];

        

        // 可变字符串特有方法

        // 在原来的字符串基础上追加字符串

        [str2 appendString:@"test"];

        NSLog(@"str2 is %@",str2);

        

        NSString *str4 = @"wahaha";

        // 在指定的字符串后追加字符串 生成一个新的字符串对象 原字符串没有变化

        NSString *str5 = [str4 stringByAppendingString:@"test"];

        NSLog(@">>%@ %@",str4,str5);

 

        // 删除前两个字符

        [str2 deleteCharactersInRange:NSMakeRange(0, 2)];

        NSLog(@"%@",str2);

        

        // 修改

        // 参数1:替换的字符串范围 参数2:需要替换的字符串

        // hahawatest

        [str2 replaceCharactersInRange:NSMakeRange(4, 0) withString:@"wa"];

        NSLog(@"str2 is %@",str2);

        

        // 插入 在指定的index位置 插入string

        [str2 insertString:@" " atIndex:4];

        NSLog(@"str2 is %@",str2);

#else

        // 5.Welcome to Qianfeng 删除to这个词

        NSMutableString *str1 = [[NSMutableString alloc] initWithString:@"Welcome to Qianfeng"];

        [str1 deleteCharactersInRange:NSMakeRange(8, 3)];

        NSLog(@"%@",str1);

        

        //6.Hello world 两个单词间插入qianfeng

        NSMutableString *str2 = [[NSMutableString alloc] initWithString:@"Hello world"];

        [str2 insertString:@"qianfeng " atIndex:6];

        NSLog(@"str2 is %@",str2);

        

        // 7.现有字符串@“When I was young,I loved a girl on neighbor class. ”younggirl 改成@“teacher,I rather teaching the students”

        NSMutableString *str3 = [[NSMutableString alloc]initWithString:@"When I was young,I loved a girl on neighbor class."];

        

        NSMutableString *str4 = [[NSMutableString alloc]initWithString:@"teacher,I rather teaching the students"];

        

        NSRange r1 = [str3 rangeOfString:@"young"];

        NSRange r2 = [str3 rangeOfString:@"girl"];

        

        [str3 replaceCharactersInRange:NSMakeRange(r1.location, r2.location - r1.location + 4) withString:str4];

        NSLog(@"str3 is %@",str3);

#endif

    

    }

    return 0;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值