ObjectC快速入门教程(2)---字符串

原创 2016年08月29日 20:10:22

背景

本文主要介绍Object C里使用频率比较高的NSString及NSMutableString两个类的使用(前者为不可变字符串类,后者为可变字符串类)及两者的常用方法.

一,NSString的使用

1.字符串比较

可以直接使用compare函数得到NSComparisonResult结果:

  //NSOrderedAscending 递增, NSOrderedSame 相等, NSOrderedDescending 递减
        NSString *str1 = [NSString stringWithFormat:@"%@", @"hello world"];
        NSString *str2 = [NSString stringWithUTF8String:"hello world"];
        NSComparisonResult result = [str1 compare:str2];
        if(result == NSOrderedAscending){
            NSLog(@"str1 小于 str2");
        }else if(result == NSOrderedSame){
            NSLog(@"str1 等于 str2");
        }else if(result == NSOrderedDescending){
            NSLog(@"str1 大于 str2");
        }

2.不区分大小写比较

      //1.1不区分大小写进行比较
        NSComparisonResult result2 = [str1 caseInsensitiveCompare:str2];

        //1.2不区分大小写的另外一种写法
        NSComparisonResult result3 = [str1 compare:str2 options:NSCaseInsensitiveSearch];
        NSLog(@"result3 = %li", result3);

3.判断字符串对象是否相等

isEqualToString

4.字符串开头结尾判断

   //1.4字符串开头判断
        BOOL ret = NO;
        NSString *str3 = @"www.baidu.com baidu uuu";
        ret = [str3 hasPrefix:@"www"];
        NSLog(@"ret = %d", ret);

        //1.5字符串结尾判断
        ret = [str3 hasSuffix:@"com"];
        if(ret == YES){
            NSLog(@"%@ 以com结尾", str3);
        }

5.字符串拼接

NSString *str4 = @"www";
        NSString *str11 = [str4 stringByAppendingString:@".baidu.com"];
        NSLog(@"str11 = %@", str11);
        NSString *str12 = [str4 stringByAppendingFormat:@"rest%d%s", 123, "hello"];
        NSLog(@"str11 = %@", str12);

6.字符串提取

NSString *str13 = [str3 substringFromIndex:4]; //从起始位置截取到结束
        NSLog(@"str13 = %@", str13);
        NSLog(@"test = %@", [str3 substringToIndex:4]); //不包含指定位置
        NSLog(@"test = %@", [str3 substringWithRange:NSMakeRange(4, 3)]);//起始位置和长度

7.字符串查找

   NSRange rage = [str3 rangeOfString:@"baidu"];
        //static const NSInteger NSNotFound = NSIntegerMax;
        if(rage.location != NSNotFound){
            NSLog(@"loc = %li, lenth = %li", rage.location, rage.length);
        }

        //倒序查找
        NSRange rage2 = [str3 rangeOfString:@"baidu" options:NSBackwardsSearch];
        if(rage2.location != NSNotFound){
            NSLog(@"loc = %li, lenth = %li", rage2.location, rage2.length);
        }

        //指定范围查找
        NSRange rage3 = [str3 rangeOfString:@"baidu" options:NSLiteralSearch range:NSMakeRange(4, 4)];
        if(rage3.location == NSNotFound){
            NSLog(@"未查到...");
        }

8.字符串大小写转换

  NSString *str = @"hello,World,test";
        NSLog(@"%@", [str uppercaseString]); //小写转大写
        NSLog(@"%@", [str lowercaseString]); //大写转小写
        NSLog(@"%@", [str capitalizedString]); //每个单词的小写转大写

9.字符串数值转换

 NSString *test = @"1234";
        NSLog(@"test = %i", [test intValue]); //转int
        NSLog(@"test = %li", [test integerValue]);//转NSInteger对象
        NSLog(@"test = %.2f", [test floatValue]);

10.字符串置换

     NSString *t1 = @"Hello, how are you!";
        NSString *t2 = [t1 stringByReplacingCharactersInRange:[t1 rangeOfString:@"how"] withString:@"howw"];
        //替换元字符串出现的所有目标字符串
        NSString *t3 = [t1 stringByReplacingOccurrencesOfString:@"how" withString:@"howwww"];
        NSLog(@"t3 = %@, 原始 = %@", t3, t1);

11.文件的输入输出

  NSError *error = nil;
        NSString *tt1 = [NSString stringWithContentsOfFile:@"/Users/yanzi/Desktop/1.txt" encoding:NSUTF8StringEncoding error:&error];
        if(error){
            NSLog(@"error = %@", error);
        }else{
            NSLog(@"tt1 = %@", tt1);
        }

        //NSString写入文件
        NSString *tt2 = @"中国人";
        BOOL saveRet = [tt2 writeToFile:@"/Users/yanzi/Desktop/2.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
        if(saveRet){
            NSLog(@"写入成功");
        }else{
            NSLog(@"写入失败");
        }

二,NSMutableString的使用

1.创建和拼接

NSMutableString *mS1 = [NSMutableString stringWithUTF8String:"李小龙"];
        [mS1 appendString:@",中国人"];
        NSLog(@"mS1 = %@", mS1);
        //创建指定容量大小的可变字符串对象
        //等于@"",空字符串对象,不是nil
        NSMutableString *ms2 = [[NSMutableString alloc]initWithCapacity:20];

2.插入字符串

[mS1 insertString:@"hello" atIndex:0];//增加字符串

3.删除指定范围的字符串

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

4.重置字符串

[mS1 setString:@"中国人民"];

5.用传入的字符串替换指定范围内的字符

[mS1 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"美国"];
        NSLog(@"mS1 = %@", mS1);
        [mS1 replaceOccurrencesOfString:@"美国" withString:@"中国" options:NSLiteralSearch range:NSMakeRange(0, [mS1 length])];
        NSLog(@"mS1 = %@", mS1);

系列代码已上传github

相关文章推荐

Spark2.x 快速入门教程 7

Spark Streaming 整合 Kafka 一、实验介绍 1.1 实验内容 Kafka是一个分布式的发布-订阅式的消息系统,可以作为 DStream 的高级数据源,本部分以单击...

Android 2D游戏引擎AndEngine快速入门教程

Android 2D游戏引擎AndEngine快速入门教程

Spark2.x 快速入门教程 5

Spark 处理多种数据源 一、实验介绍 1.1 实验内容 Spark SQL 通过 DataFrame 接口可以支持 Parquet、JSON、Hive 等数据源,将 DataFr...

Shiro学习总结(2)——Apache Shiro快速入门教程

第一部分 什么是Apache Shiro 1、什么是 apache shiro : Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理 如同 s...

opencl 初学笔记2- opencl快速入门教程【数据类型规范 , 命名原则】

OpenCL快速入门教程 原文地址:http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201 翻译日期:2012年6...

Python快速入门教程2:Python 面向对象

第2部分:Python 面向对象 1、类与对象 1.1 定义类     通常你需要在单独的文件中定义一个类     [root@hadron python]# vi Employee.py ...

Spark2.x 快速入门教程 1

Spark2.x 课程介绍 一、实验介绍 1.1 实验内容 Spark 是 Apache 高级项目里面较火的大数据处理的计算引擎,对比 Spark 1.x 版本,Spark 2.x ...

认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

Spark2.x 快速入门教程 4

Structured Streaming 一、实验介绍 1.1 实验内容 Spark2.0 新增 Structured Streaming,它是基于 SparkSQL 构建的可扩展和...

Hibernate快速入门教程(2)

二、持久层的组成     这一节的名字应该换成“基于Hibernate的持久层的组成”更合适一点,可是它太长了。既然Hibernate是用来开发持久层,那么我先介绍一下这个持久层中的各个元素。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ObjectC快速入门教程(2)---字符串
举报原因:
原因补充:

(最多只允许输入30个字)