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

Swift -2 字符串与集合

2015-11-19 11:01 399 查看

字符

1.单个字符来指定字符常量,如”A”,”9”

2.转义字符表示特殊字符常量,如”\n”,”\t”

3.使用\u{n}的Unicode形式,n代表一个1~8为的十六进制数

4.必须使用双引号括起来

5.Swift中的每一个字符代表了一个可扩展字母集

var s: Character = "美"
var quote1 = "\'" // 通过转义字符创建的字符是单引号
var quote2 = "\u{22}" // 通过Unicode创建的是双引号
//print(s)
//print("quote1的值为:\(quote1), quote2的值为:\(quote2)")

// 使用Unicode形式定义4个字符
var diamond: Character = "\u{2666}"
var heart: Character = "\u{2663}"
var club: Character = "\u{2665}"
var spade: Character = "\u{2660}"
//print("\(diamond), \(heart), \(club), \(spade)")


字符串(重点)

1.字符串的创建

2.字符串基本操作

// 1.创建
var str1 = "苹果"
// 使用构造器来
var str2 = String() // 初始化字符串实例
// 创建多个重复字符的字符串,需要指明字符的类型
var str3 = String(count: 4, repeatedValue: Character("a"))
var strRep = String(count: 5, repeatedValue: UnicodeScalar("��")) // ��表情为Unicode编码1F436
//print(strRep)
//print(str3)
//print(str3.isEmpty) // 判断字符串是否为空

// 2.字符串基本操作
var str4 = str1 + "公司" // 用 + 进行拼接,比OC方便多了
str1 += "你好" // 用 += 将字符串拼接到自身
//print(str1)
let char: Character = "!"
str1.append(char)
//print(str1)

// 在swift2.0中,countElements方法被移除,可以直接按照下面方法点出字符串的长度
var length = str3.characters.count
//print("str3 has \(length) characters")

// Swift中的字符串是否可以修改仅通过定义的是变量还是常量来决定
// 字符串比较
let quotation = "我们是一样一样滴"
let sameQuotation = "我们是一样一样滴"
if quotation == sameQuotation {

//    print("这两个字符串被认为是相同的")
}

// 检查字符串是否拥有特定前缀/后缀,两个方法均需要以字符串作为参数传入并传出Boolean值
var food = ["Fruits: apple",
"Fruits: orange",
"Fruits: banana",
"Vegetables: tomato",
"Vegetables: potato"
]
for fru in food {
if fru.hasPrefix("Fruits"){
//        print(fru)
}
if fru.hasSuffix("o"){
//        print(fru)
}
}


数组(重点)

1.数组创建

2.访问和修改数组

/*声明数组写法:
第一种:Array<someType>, 如Array<Int>
第二种:[SomeType], 如[String]
*/
// 第一种
var myArr = Array<String>() // 创建空数组,并赋值给myArr变量
var num = Array<Int>(count: 3, repeatedValue: 1)
//print(num)

// 第二种
var arr: [Int] = [1, 2, 3]

// 使用构造语法来创建一个由特定数据类型构成的空数组
var sonmeInts = [Int]()

var threeDoubles = [Double](count: 3, repeatedValue: 0.0)
//print(threeDoubles)

var food1 = ["apple", "orange", "banana", "tomato", "potato"] // 用的最多
//print(food1[3]) // 取数组下标
//print(food1.count) // 取数量

var shoppingList = ["Eggs", 123, true]
for item in shoppingList{
//    print(item)
}

for fruit in food1{
//    print(fruit)
}

// 数组可变性
// 1.append() 方法在数组尾部添加新元素
food1.append("Vegetables: mushroom")
//print(food1)
// 2.通过加法添加新元素
food1 += ["pineapple", "pitaya"]
//print(food1)

food1[0...2] = ["a", "b"] // 替换元素
//print(food1)

// 3.不能使用下标语法在数组尾部添加新项,调用insert(atIndex:)方法来在某个具体索引值前添加数据项
food1.insert("Meat", atIndex: 0)
//print(food1)

// 使用removeAtIndex方法来移除数组中的某一项
food1.removeAtIndex(0)
//print(food1)
// 把数组中的最后一项移除,可以使用removeLast方法
food1.removeLast()
//print(food1)
// 删除所有元素,参数是否保留数据缓冲,默认是false
food1.removeAll(keepCapacity: false)
//print(food1)


字典(重点)

1.字典的声明和创建

2.字典的使用

/*
Dictionary<keyType, valueType>
[keyType: valueType]
*/

// 声明字典
var dic1: Dictionary<String, String>

var scores: [String: Int]

// 创建字典
dic1 = Dictionary<String, String>()

scores = Dictionary<String, Int>(minimumCapacity: 5) // 最小容量为5

var emptyDic: [String: Double] = [:] // 空字典,冒号不可少
//print(emptyDic.isEmpty)

// 通过常量或者变量决定字典是否可变
var person = ["age": "18",
"name": "Tom",
"身高": "178"]
//print(person["age"])
//print(person["weight"]) // 不存在key,返回nil
person["name"] = "jack" // 可以直接对key改值
person["weight"] = "90" // 对不存在的key设置value,字典将会添加key-value对
//print(person)
var height: String? = person["身高"] // 如果类型不匹配就会报错
if height != nil{
//    print(height!) // 这里带!是强制解析
}

// updateValue(forkey:)方法在这个键不存在对应值的时候,设置值或者在存在时更新已存在的值,这个方法返回更新值之前的原值
if let oldName = person.updateValue("Lucy", forKey: "name"){
//    print("原来的值是:\(oldName)")
}
//print(person)

for (key, value) in person{
//    print("\(key): \(value)")
}

// removeValueForKey方法也可以用来在字典中移除键值对
//person.removeValueForKey("name")
//print(person)

//person.removeAll(keepCapacity: false) // 移除所有
//print(person)

let keysArr = [String](person.keys) // 取出所有key
let valuesArr = [String](person.values) // 取出所有value
//print(keysArr)
//print(valuesArr)


下一节:Swift中的函数和闭包
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: