标签:
在 Swift 中绝大多数的情况下,推荐使用
String
类型
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
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
再处理let helloString = "我们一起飞"
(helloString as NSString).substringWithRange(NSMakeRange(2, 3))
let startIndex = helloString.startIndex.advancedBy(0)
let endIndex = helloString.endIndex.advancedBy(-1)
helloString.substringWithRange(startIndex..<endIndex)
[]
定义,这一点与 OC 相同//: [Int]
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers {
print(num)
}
let num1 = numbers[0]
let num2 = numbers[1]
let
定义不可变数组var
定义可变数组let array = ["zhangsan", "lisi"]
//: 不能向不可变数组中追加内容
//array.append("wangwu")
var array1 = ["zhangsan", "lisi"]
//: 向可变数组中追加内容
array1.append("wangwu")
NSObject
//: array1 仅允许追加 String 类型的值
//array1.append(18)
var array2 = ["zhangsan", 18]
//: 在 Swift 中,数字可以直接添加到集合,不需要再转换成 `NSNumber`
array2.append(100)
//: 在 Swift 中,如果将结构体对象添加到集合,仍然需要转换成 `NSValue`
array2.append(NSValue(CGPoint: CGPoint(x: 10, y: 10)))
:
可以只定义数组的类型[类型]()
可以实例化一个空的数组var array3: [String]
//: 实例化之前不允许添加值
//array3.append("laowang")
//: 实例化一个空的数组
array3 = [String]()
array3.append("laowang")
array3 += array1
//: 必须是相同类型的数组才能够合并,以下两句代码都是不允许的
//array3 += array2
//array2 += array3
//: 删除指定位置的元素
array3.removeAtIndex(3)
//: 清空数组
array3.removeAll()
var list = [Int]()
for i in 0...16 {
list.append(i)
print("添加 \(i) 容量 \(list.capacity)")
}
[]
定义字典let
不可变字典var
可变字典[String : NSObject]
是最常用的字典类型//: [String : NSObject] 是最常用的字典类型
var dict = ["name": "zhangsan", "age": 18]
dict[key] = value
格式//: * 如果 key 不存在,会设置新值
dict["title"] = "boss"
//: * 如果 key 存在,会覆盖现有值
dict["name"] = "lisi"
dict
k
,v
可以随便写key
value
//: 遍历
for (k, v) in dict {
print("\(k) ~~~ \(v)")
}
//: 合并字典
var dict1 = [String: NSObject]()
dict1["nickname"] = "大老虎"
dict1["age"] = 100
//: 如果 key 不存在,会建立新值,否则会覆盖现有值
for (k, v) in dict1 {
dict[k] = v
}
print(dict)
标签:
原文地址:http://www.cnblogs.com/-liangjingjing/p/5350342.html