import UIKit
var str = "Hello, playground"
//1、分别创建字符串China和MyLove,将两个变量拼接成一句话并且对拼接后的新字符串变量进行遍历,并检查其中是否有'L'字符,有则打印
var str1 = "Hello"
var str2 = "MyLove"
var str3 = str1 + str2
for c in str3.characters {
if c == "L" {
print(c)
}
}
//2、删除swertfkf!sdsfs?sfsfs!ads 中的所有!和?
var strd = "swertfkf!sdsfs?sfsfs!ads"
var strdre = String()
for index in strd.characters.indices {
if strd[index] != "!" && strd[index] != "?" {//不是!或者?的字符就拼接
strdre.append(strd[index])
}
}
print(strdre)
//3、将abcdefg进行倒序排列
var strorder = "abcdefg"
var strorderRe = String()
var index = strorder.endIndex //endIndex 字符的个数
while index > strorder.startIndex {
index = strorder.index(before: index)
strorderRe.append(strorder[index])
}
print(strorderRe)
//4、将“*”逐个插入到字符串中间,并打印
var strI = "我爱中国"
var strIRe = String()
//for char in strI.characters {//利用字符拼接
strIRe.append(String(char+"*"))
// strIRe.append(char)
// if char != strI.characters.last {
// strIRe.append("*")
// }
//
//}
for index in strI.characters.indices{
strIRe.append(strI[index])
if index<strI.index(before: strI.endIndex) {//利用下标拼接
strIRe.append("*")
}
}
print(strIRe)
//5、将字符串中的所有abc换成Hello
var strP = "abc中国ab日本c美国abc英国abc俄罗斯"
var strPRes = String()
var range = strP.range(of: "abc")//找到第一个abc的位置
while range != nil {
strP.replaceSubrange(range!, with: "Hello")//替换
range = strP.range(of: "abc")
}
print(strP)
//6、将给定字符串进行正负号翻转,并打印
var str6 = "-123"
var str61 = "+234"
func transformStr(str:String) ->(String){
var newStr = String(str)
if str .hasPrefix("-") {
let range = str.range(of: "-")
newStr.replaceSubrange(range!, with: "+")
}
if str .hasPrefix("+") {
let range = str.range(of:"+")
newStr.replaceSubrange(range!, with: "-")
}
return newStr
}
str6 = transformStr(str: str6)
str61 = transformStr(str: str61)
print(str6,str61)
//7、将数组中的0去掉并返回新的数组
var arr = [1,2,0,23,345,0,22,0,34,23,0,0,0,36]
var newArr = Array<Int>()
for index in arr.indices {
// if arr[index] == 0 {
// continue
// }
// newArr.append(arr[index])
if arr[index] != 0 {
newArr.append(arr[index])
}
}
print(newArr)
//8、定义一个包含10个元素的数组,对其进行赋值,使每个元素等于其下标,然后输出
var preArr = Array<Int>()
for index in 0...9{
preArr.append(index)
}
print(preArr)
//倒置
preArr.sort { (a, b) -> Bool in
return a>b
}
print(preArr)
//9、工程测量到两组数据分别是2、4、3、5和3、4、7、1.对两组数据进行整合使其合成一组数据,重复的数据只算一次
var set1 : Set<Int> = [2,4,3,5]
var set2 : Set<Int> = [3,4,7,1]
var set3 = set1.union(set2)
print(set3)
//10、期末考试中,王晓成绩98,周明成绩86,李小伟成绩93,用字典结构来对3人的成绩进行存储,并进行从高到低的排序输出
var table = ["王晓":98,"周明":86,"李小伟":93]
for item in table.sorted(by: { (student1, student2) -> Bool in
return student1.value > student2.value
}){
print(item)
}
print(table.sorted(by: { (student1, student2) -> Bool in
return student1.value > student2.value
}))
var tap1 = (3,4,"5")
var tap2 = (2,6,"7")
tap1<tap2
//上面是两个元组的比较,其原则是:首先要比较的元组中元素个数和对应位置的元素类型必须相同,其次元组中每一个元素必须支持比较运算操作。上面的tap1和tap2的元组个数和对应位置的元素类型相同可以比较,tap1中的3,4比tap2中的2大,所以是false
var i = 0
while i<10 {
print(i)
i += 1
}