Swift教程08-基本数据类型(四)String与NSString对比

Swift教程08-基本数据类型(四)String与NSString对比,第1张

概述Swift给我们提供的字符串类型String与Objc的提供的字符串NSString有很大的不同 对比如下: (1)Objc中的字符串对应的是一个类NSString,是引用类型;而Swift的字符串String对应的是一种值类型. (2)形式上,Swift字符串 前面不需要加上 @符号 (3)使用var 定义的字符串则是Objc中的可变字符串;使用let定义的字符串为Objc对应的不可变字符串 (

Swift给我们提供的字符串类型String与Objc的提供的字符串Nsstring有很大的不同

对比如下:


(1)Objc中的字符串对应的是一个类Nsstring,是引用类型;而Swift的字符串String对应的是一种值类型.


(2)形式上,Swift字符串 前面不需要加上 @符号


(3)使用var 定义的字符串则是Objc中的可变字符串;使用let定义的字符串为Objc对应的不可变字符串


(4)字符串本质上是一个结构体,可以使用结构体的构造器来创建;而Objc的字符串需要使用类的便利构造器,或便利初始化


1.定义字符串,String与Nsstring可以无缝连接,String类型的可以调用和Objc中对应的同名方法

var str = "字符串"var str2:String = "字符串"var str3:Nsstring = "字符串"


使用String类型的构造器来创建,类似 Objc的 [Nsstring string]
var str4 = String()

调用String的方法,和Objc的方法同名,只是形式不同;方法有很多,大家可以参照之前Objc的方法来调用
str4.stringByAppendingString("aa")


2.判空属性


Swift提供了一个属性 isEmpty来 判断一个字符串是否为空

if str.isEmpty{    //}else{    println("非空")}


与之对应的是 objc中的 [str isEqualToString @""]

3.字符串的可变性


使用var 定义的字符串是可变的,使用let 定义的字符串是不可变的

4.字符串的连接


字符串的连接和 Js类似,只需要 使用 + 加号即可连接字符串

var str5 = str2 + str3


5.字符串的字符数量统计函数 countElements()


使用countElements()函数,可以统计字符串中字符的个数

var str2:String = "字符串"println(countElements(str))

输出3


6.遍历字符串 for in


遍历该字符串时,字符串此时类似于一个数组

直接使用一个变量来接受字符串的一个字符,然后输出

var str = "字符串"for ch in str{    println("ch==\(ch)")}

当然你也可以,不接受任何字符,只是遍历,其他啥也不做,可以使用下划线_,忽略该字符
var str = "字符串"var i = 0for _ in str{    println("i = \(i++)")}


7.字符串的内容比较


与 Objc的字符串内容比较不同,Swift 可以直接使用 ==来比较字符串 或者其他 类型的值是否相等;

原因是 Swift还提供了 ===,来比较两个实例 是否是同一个实例

var str = "字符串"var str2 = "字符串"if str == str2{    println("字符串内容相等")}

此方法,等价于 Objc中的 [str isEqualToString : str2]


8.String的length属性与 countElements() 结果的不同


String采用的是Unicode字符编码,而 length属性则是 根据 utf16字符集进行 计算的,所以两者返回的值,不尽相同;

苹果推荐是使用上述的函数来计算字符的个数


9.字符串插值


可以把 一个不是字符串的 值插入到字符串中,类似于 C语言中的格式化输入输出

var a=2222var strA = "cc\(a)"

输出: cc2222


10.访问字符串的底层编码


Swift的字符串有 utf8,utf16等属性,该属性是一个编码集合,我们可以使用 for in循环遍历


var str="aa你好!"for ch in str.utf16{    println(ch)}

如上面的代码: 输出了 字符串中字符对应的编码


11.[补充]: Swift中的字符


Swift中的字符对应的是 Character,需要使用双引号

定义一个字符

var ch:Character = "A"

也可以直接使用Unicode编码来定义,使用 \u{数字} 的形式即可

var ch = "\u{2237}"


更多Swift教程:http://blog.csdn.net/yangbingbinga

总结

以上是内存溢出为你收集整理的Swift教程08-基本数据类型(四)String与NSString对比全部内容,希望文章能够帮你解决Swift教程08-基本数据类型(四)String与NSString对比所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存