swift练习-String、Array、Dictionary、Set


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

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值