您的位置:首页 > 移动开发 > Swift

四.swift - string

2016-07-27 10:16 260 查看

四.字符串

在 Swift 中绝大多数的情况下,推荐使用 
String
 类型

String 是一个结构体,性能更高
String 目前具有了绝大多数 NSString 的功能
String 支持直接遍历

NSString 是一个 OC 对象,性能略差
Swift 提供了 
String
 和 
NSString
 之间的无缝转换

   字符串演练

遍历字符串中的字符

for s in str.characters {
    print(s)

}

字符串长度

// 返回以字节为单位的字符串长度,一个中文占 3 个字节
let len1 = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
// 返回实际字符的个数
let len2 = str.characters.count
// 返回 utf8 编码长度

let len3 = str.utf8.count

字符串拼接
直接在 "" 中使用 
\(变量名)
 的方式可以快速拼接字符串
对字符串更多的进行拼接

let str1 = "Hello"
let str2 = "World"
let i = 32

str = "\(i) 个 " + str1 + " " + str2

我和我的小伙伴再也不要考虑 
stringWithFormat
 了 :D

可选项的拼接
如果变量是可选项,拼接的结果中会有 
Optional

为了应对强行解包存在的风险,苹果提供了 
??
 操作符
??
 操作符用于检测可选项是否为 
nil

如果不是 
nil
,使用当前值
如果是 
nil
,使用后面的值替代

let str1 = "Hello"
let str2 = "World"
let i: Int? = 32
str = "\(i ?? 0) 个 " + str1 + " " + str2


[/code]
格式化字符串
在实际开发中,如果需要指定字符串格式,可以使用 
String(format:...)
 的方式

let h = 8
let m = 23
let s = 9
let timeString = String(format: "%02d:%02d:%02d", arguments: [h, m, s])

let timeStr = String(format: "%02d:%02d:%02d", h, m, s)

 String & Range 的结合

 NSString与[b]String的转换[/b]
       
//

便是
截取出来
       
// OC里的截取方法
--
通过 (str2 as NSString)

Swift中的String转换成了
NSString,就可以调用OC里的方法了
       
let subStr = (str2
as
NSString).substringWithRange(NSMakeRange(4,
1))

       
print(subStr)

       
       
// 再来说swift中的截取
       
// "你好你好"
只是作为一个占位符
       
       
let startIndex =
"你好你好".endIndex
       
let endIndex =
"你若安好便是".endIndex

       
//
你若安好便是晴天
       
let swiftSubString = str2.substringWithRange(startIndex..<endIndex)

       
       
print(swiftSubString)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: