标签:swift 遍历字符串 string.index isempty advance
首先我们回顾一下C、OC中字符串相关知识:
C语言中,通常说字符串为一个普通的字符数组,如:char characters[12] = "hello world";而C语言中引用字符串通常和指针扯上关系,写法如:char * s = "hello world";这两种写法上,存在一个明显的区别在于characters中的字符存在于栈区,而s指向的字符串存在于常量区,这一点需要注意;
当我们去处理C语言中的字符串时,通常引用系统给予的库文件<string.h>,对字符串进行比较、复制、粘贴等,直接使用一些库函数就能达到相应效果;
OC语言中,字符串类型分为NSString和NSMutableString,可以理解为可变和不可变字符串,故名思议,对于可变字符串我们可以在源字符串中进行增、删等操作,而对于不可变字符串,对其内容进行修改之外,必将产生新的字符串;
Swift中的字符串:
首先,对于Swift中的字符串,我们需要先区别一下Swift中的字符和字符串的关系和区别:即Character和String;
如下:
这两条语句中,均未设定其类型,由于Swift的左推导类型的作用,会默认temp为Character(字符)类型,而otherTemp为String(字符串)类型;
注意:String和Character类型的值均为双引号;Character类型,无法为自身字符串进行追加操作;
下面,我们来看一些对于String的一些操作:(这里我们不再区分var 和let)
1、初始化字符串
这里两句初始化方法,均为初始化两个空字符串;
2、判定字符串是否为空
控制台打印信息:字符串为空,这里,我们可以通过函数countElements()来得到字符串的字符个数;
3、字符串的拼接
其中:第4中方式,insert index位置,类型必须为String.Index类型,不能为Int类型,所以我们需要先通过String得到对应的index,然后才能insert操作成功;
第5中方式,将Swift中的String类型转换为OC中的NSMutableString类型,此后,用法同OC中的NSMutableString的用法;
最后控制台打印效果为:
4、移除元素
其中,需要注意代码中2和-2的写法,advance函数第二个参数位置,正数代表往后(右)移动位置,负数代表向前(左)移动位置;startIndex为当前字符串的开始,endIndex为当前字符串的结尾;startIndex ... endIndex表示范围,注意...(闭区间)前后的空格一定要匹配,否则编译器会报错误:removeAll函数中参数为Bool类型;
看一下控制台的输出:
5、查询字符串
Swift查询字符串包涵三种方式,第一种为hasPrefix,查询前缀,第二种为hasSuffix,查询后缀,最后一种为 == 双等号和 != 不等号,比较是否相等,后续我们会介绍 === 三个等号和 !==的形式;
6、遍历字符串
这里只简单介绍两种遍历方式,其他方式比较少用,可以查看相关开发文档
本文出自 “才女金大福” 博客,请务必保留此出处http://liwenyu.blog.51cto.com/9864907/1611032
标签:swift 遍历字符串 string.index isempty advance
原文地址:http://liwenyu.blog.51cto.com/9864907/1611032