Objective-c语言_对字符串操作的常用方法


#import <Foundation/Foundation.h>


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

    @autoreleasepool {

       

        /*

         构造字符串四种方式

            NSString 不可变字符串

         */

        

        //1.初始化一个字符串对象

        NSString *string1 = @"ibokanwisdom";

        

//        NSString *string2 = [NSString stringWithString:@"ibokanwisdom"];

//        NSString *string3 = [[NSString alloc]initWithString:@"ibokanwisdom"];

        

        //使用NSString的类方法来创建字符串,+ (instancetype)stringWithFormat:@"格式化标志符"

        NSString *string4 = [NSStringstringWithFormat:@"%d,%.1f,hi guys",5,4.5];

        NSLog(@"string4 = %@",string4);

        

        //对于用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串拼接

        NSString *string5 = @"Rick";

        NSString *string6 = @"666";

        NSString *string7 = [NSStringstringWithFormat:@"%@%@",string5,string6];

        NSLog(@"string7 = %@",string7);

        

        //从本地文件中读取字符串

        NSString *path1 =@"/Users/liujiahao/Desktop/OC_04_02/OC_04_02/t.html";

        

        NSStringEncoding encoding ;//NSUTF8StringEncoding(4)

        NSError *error ;

        

        NSString *string8 = [NSStringstringWithContentsOfFile:path1 encoding:NSUTF8StringEncodingerror:&error];

        

//        NSLog(@"string8 = %@,error = %@",string8,error);

        

        //从网络读取字符串

        NSURL *url = [NSURLURLWithString:@"http://www.baidu.com"];

//        NSString *string10 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

        

//        NSLog(@"string10 = %@",string10);

        

        //字符串的操作

        NSString *string11 = @"你是逗比么,我都受不了你了";

        

        //字符串属性    长度      length

        NSUInteger length = [string11 length];

        NSLog(@"length = %lu",length);

        

        //字符串的截取

        NSString *subString1 = [string11substringToIndex:5];  //获取从字符串开头到字符串的 to的位置的字符串内容,不包括to位置,从0算起

        NSLog(@"subString1 = %@",subString1);

        

        NSString *subString2 = [string11 substringFromIndex:6]; //获取从字符串的from位置到结尾的字符串内容,包含from位置的字符

        NSLog(@"subString2 = %@",subString2);

        

        NSString *subString3 = [string11 substringWithRange:NSMakeRange(2,2)];

        NSLog(@"subString3 = %@",subString3);

        

        //获取字符串中的某个字符

        NSString *string12 = @"abcdefg";

        char c = [string12characterAtIndex:0];//根据字符串中的位置 index来得到一个字符,注意字符串的索引是从0开始的

        NSLog(@"%c",c);

        

        //字符串比较,如何判断两个字符串是否相等

        if (subString2 == subString3)

        {

            //内容和指针都相等时,才成立

            NSLog(@"subString2 subString3相等");

        }

        else

        {

            NSLog(@"subString2 subString3不相等");

        }

        

        /*

         如何才能让两个字符串的指针和内容都相等呢?

         P96

         这里需要注意两个概念浅拷贝 深拷贝

         浅拷贝:是指源对象与拷贝对象共用一份实体,仅仅是引用的变量名称不同。

         

         深拷贝:是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另一个对象造成影响。

         

         在字符串中,[NSString stringWithString:]方法是用于浅拷贝一个现有的字符串产生一个字符串

         */

        

        NSString *subString4 = [NSStringstringWithString:subString2];

        

        NSString *subString5 = [NSStringstringWithFormat:@"%@",subString2];

        

        if (subString2 == subString5)

        {

            //内容和指针都相等时,才成立

            NSLog(@"subString2 subString5相等");

        }

        else

        {

            NSLog(@"subString2 subString5不相等");

        }

    

        //在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等

        if ([subString2 isEqualToString:subString5])

        {

            NSLog(@"subString2 subString5内容相等");

        }

        else

        {

            NSLog(@"subString2 subString5内容不相等");

        }

        

        //比较两个字符串的大小

        NSString *cmpString1 = @"hehehehehehe";

        NSString *cmpString2 = @"hahahahahaha";

        

        NSComparisonResult result = [cmpString1compare:cmpString2];

        

        switch (result) {

            caseNSOrderedAscending:

            {

                NSLog(@"cmpString1 < cmpString2,升序");

            }

                break;

            case NSOrderedSame:

            {

                NSLog(@"cmpString1 = cmpString2");

            }

                break;

            caseNSOrderedDescending:

            {

                NSLog(@"cmpString1 > cmpString2,降序");

            }

                break;

            default:

                break;

        }

        

        //根据字符串拿到对应的range

        //NSString *string11 = @"你是逗比么,我都受不了你了";

        NSRange range = [string11 rangeOfString:@"逗比"];

        NSLog(@"%@",[NSValuevalueWithRange:range]);

        

        //只输出第一个遇到该字符串的位置 该字符串的长度

        NSRange range1 = [string11 rangeOfString:@""];

        NSLog(@"%@",[NSValuevalueWithRange:range1]);

        

        

        //判断字符串中是否有XX前缀 XX后缀

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

        

        if ([string13 hasPrefix:@"http://"])

        {

            NSLog(@"含有此前缀");

        }

        else

        {

            NSLog(@"不含有此前缀");

        }

        

        //判断是否为 jpg png 后缀

        NSString *string14 = @"dkjfkj.jpg";

        if ([string14 hasSuffix:@".jpg"] || [string14 hasSuffix:@"png"])

        {

            NSLog(@"含有此后缀");

        }

        else

        {

            NSLog(@"不含有此后缀");

        }

        

        

        //字符串 拼接

        NSString *string15 = @"www.baidu.com";

        NSString *string16 = [@"http://"stringByAppendingString:string15];     //直接把两个字符串连接起来,调用者在前,传进来的字符串在后

        NSLog(@"string16 = %@",string16);

        

        //http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg

        NSString *string17 =@"http://img0.bdstatic.com/img/image/shouye";

        NSString *string18 = @"hbmnp003.jpg";

        NSString *string19 = [string17 stringByAppendingFormat:@"/%@",string18];   //连接两个字符串,并且第二个字符串是按一定格式传进来的

        NSLog(@"string19 = %@",string19);

        

//        NSString *string20 = [@"http://" stringByAppendingPathComponent:string18];

//        NSLog(@"string20 = %@",string20);

        

        NSString *string21 =@"http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg/ddddd";

//        NSString *string21 = @"a\\dd\\dfds\\s\\t";

        

        NSString *string22 = [string21 lastPathComponent];

        NSLog(@"string22 = %@",string22);

        

        

        NSString *theImageName = @"Rick";

        NSString *string23 = @"png";

//        NSString *q = [theImageName stringByAppendingFormat:@".%@",string23];

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

        NSString *string24 = [theImageName stringByAppendingPathExtension:string23];

        NSLog(@"string24 = %@",string24);

        

        

        //字符串的其他常用方法

        //1.字符串的转换函数

        NSString *str1 = @"111add333";

        int a1 = [str1 intValue];

        float b1 = [str1 floatValue];

        double c1 = [str1 doubleValue];

        NSLog(@"%d",a1);

        

        

        //2.字符串大小写转换函数

        NSString *str2 = @"aaabb";

        NSString *str3 = [str2 uppercaseString];    //将字符全部改写成大写

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

        

        NSString *str4 = [str3 lowercaseString];    //将字符全部改写成小写

        NSLog(@"str4 = %@",str4);

        

       NSString *str5 = [str2 capitalizedString];   //将首个字符改写成大写,其余的都小写

        NSLog(@"str5 = %@",str5);

        

        

        //字符串的替换函数

        

        NSString *str6 = [str2stringByReplacingOccurrencesOfString:@"bb"withString:@"dd"];

        NSLog(@"str6 = %@",str6);

        

        NSString *str7 = [str2stringByReplacingCharactersInRange:NSMakeRange(1,2) withString:@"cc"]; //将原字符串中range范围内的内容替换成replacement的内容

        NSLog(@"str7 = %@",str7);

        

        NSString *str8 = @"aa-bb-cc-dd-ee";

        

        NSArray *array = [str8 componentsSeparatedByString:@"-"];

        //separator为分隔符,将原字符串的内容进行分割,分割得到的结果放到一个数组里,作为返回值

        

        NSLog(@"array = %@",array);

    }

    return 0;

}

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

t.html

在工程项拉进一个t.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

  <meta http-equiv="Content-Style-Type" content="text/css">

  <title></title>

  <meta name="Generator" content="Cocoa HTML Writer">

  <meta name="CocoaVersion" content="1404.13">

  <style type="text/css">

    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}

  </style>

</head>

<body>

<p class="p1">Hello World!!!</p>

</body>

</html>
























































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值