直接上代码 拷贝到工程里 系统学习
// 1.字符 字符串
// 2.控制流
import Foundation
//print("Hello, World!")
// 字符 Character "A","o","1" "\n" "\u{n}" ,n表示16进制数
var s:Character = "想"
var q1 = "\""
var q2 = "\u{22}"
print("\(s)\(q1)\(q2)")
//字符串 String
//(1)类型
var name = "fkit.org"
var myBook:String = "八维教育"
var str = String()
var str1:String = ""
//print(name+str+str1+myBook)
//print(name.isEmpty)
//(2)字符串可变性 let var
//(3)字符索引
var str3 = "asdfghj"
//print(str3.count)
//字符个数 characters.count count
//print("str3包含的字符个数:\(str3.count)")
//遍历字符串 for-in 字符所在的位置 index 字符的存储大小不同
//startIndex获取字符串中第一个字符的索引
//print("str3的第一个字符:\(str3[str3.startIndex])")
//print(str3[str3.index(after: str3.startIndex)])
//print("str3的第一个字符的后一个字符:\(str3[str3.index(after: str3.startIndex)])")
//endIndex获取字符串最后一个字符的后一个字符的索引
//print(str3[str3.endIndex])
//print("str3的末尾字符:\(str3[str3.index(before: str3.endIndex)])")
//print("\(str3[str3.index(before: <#T##String.Index#>)])")
//第4个字符
//let index = str3.index(str3.startIndex, offsetBy: 3)
let index = str3.index(str3.startIndex, offsetBy: 3)
//print("第4个字符为:\(str3[index])")
for str11 in str3{
// print(str11)
}
for index1 in str3.indices{
// print(str3[index1])
}
//(4)基本操作
var str4 = "fkit"
let dot:Character = "."
//1)添加单个字符
//str4.append("org")
str4.append(dot)
//print(str4)
//2)添加字符串
str4.append(contentsOf: "org")
//print(str4)
//3)插入单个字符
//str4.insert(<#T##newElement: Character##Character#>, at: <#T##String.Index#>)
str4.insert("!", at: str4.index(str4.startIndex, offsetBy: 4))
print(str4)
//4)插入字符串
str4.insert(contentsOf: " is a training center", at: str4.index(str4.startIndex, offsetBy: 4))
print(str4)
//5)删除指定索引字符
str4.remove(at: str4.index(str4.endIndex, offsetBy: -5))
//print(str4)
//6)删除指定范围字符串
str4.removeSubrange(str4.index(str4.endIndex, offsetBy: -25)..<str4.index(str4.endIndex, offsetBy: -4))
//print(str4)
//7)替换指定范围内字符
str4.replaceSubrange(str4.startIndex..<str4.index(str4.startIndex, offsetBy: 4), with: "bawe")
//print(str4)
//(5) 字符串比较 相等 前端相等 后端相等
var str5 = "fkit.org"
var str6 = String()
str6 = str5 + str6
//print(str5==str6)
let hasFk:Bool = str5.hasPrefix("fk")
//print("\(hasFk)")
let hasOrg:Bool = str5.hasSuffix("org")
//print("\(hasOrg)")
//2.控制流 分支结构和循环结构 顺序结构
//(1)分支结构 if(简单情况) 和switch(复杂情况)
// if 主要是 条件不佳括号
let age = 45
if age>30 {
}
//switch 没有break
// 范围匹配
let score = 99
switch score {
case 91...100:
print("优秀")
case 71...90:
print("良好")
default:
print("不及格")
}
//元祖匹配 (坐标系)
let somePoint = (x:1,y:4)
switch somePoint{
case (0,0):
print("原点")
case (_,0):
print("X轴")
case (0,_):
print("Y轴")
case (0..<Int.max,0..<Int.max):
print("第一象限")
default:
break;
}
//(2)循环结构
//while 条件不加()
//var count = 0
//while count<10 {
//
//}
//for-in循环
var max = 7
var result = 1
for num in 1..<max {
result += num
}
var num = Int("100")
var newNum = num ?? 222
print(newNum)
var data = Int("100d")
print(data ?? "转换失败")
//打印九九乘法表
for index_r in 1...9{
for index_l in 1...9{
if index_l <= index_r{
print("\(index_r)*\(index_l) =\(index_r * index_l)")
}
}
print("\n")
}