从0开始学swift--字符和字符串

swift的字符串是值类型

String与Character

Characte值必须仅包含单个字符。

var str = "hello"

//字符串遍历

for character in str {

    print(character)

}

//h

//e

//l

//l

//o

可以将Character类型的值通过stringappend()方法插入到str中

let char:Character = "!"

str.append(char)

print(str)    // hello!

特殊字符

\n    换行

 

初始化空字符串

let str1 = ""

let str2 = String()

 

通过其布尔属性isEmpty判断是否为空

if str.isEmpty {  print("Nothing")  }

 

字符串的拼接

//1

var str = "Hello"

str += " World"

print("str")   //"Hello World"

//2

let str3 = str + str2

print("str3")   //"HelloWorld"

 

字符串的插值

let str1 = "World"

let str2 = "Hello \(str1)"

print("str2")   //"Hello World"

 

计算字符

let str = "count"

print(str.count) // 5

注意:Swift将扩展字形集合用于Character值意味着字符串连接和修改可能并不总是会影响字符串的字符数。

例如:

str += "\u{301}"

print(str.count) // 5

count属性返回的字符数量并不总是等于NSString的lenght,两者采用的编码方式不同,String采用Unicode标准,NSString采用UTF-16

 

字符串的索引

let greeting = "Guten Tag!"

//在首字母之后

greeting[greeting.index(after: greeting.startIndex)]

//在最后一个字母之前

greeting[greeting.index(before: greeting.endIndex)]

//根据下标输出

let index = greeting.index(greeting.startIndex, offsetBy: 0)

greeting[index]

//使用该indices属性可以访问字符串中单个字符的所有索引。

for index in greeting.indices {

    print("\(greeting[index]) ", terminator: "")

}

 

插入与删除

var welcome = "hello"

let index2 = welcome.index(welcome.startIndex,offsetBy:0)

//插入字符

//要将单个字符插入到指定索引处的字符串中,请使用该insert(_:at:)方法,并在指定索引处插入另一个字符串的内容,请使用该insert(contentsOf:at:)方法。

welcome.insert("w", at: index2)

//插入字符串

welcome.insert(contentsOf: "www", at: index2)

//删除字符

//要从指定索引处的字符串中删除单个字符,请使用该remove(at:)方法,并删除指定范围内的子字符串,请使用以下removeSubrange(_:)方法:

welcome.remove(at: index2)

print(welcome)

//删除字符串

let range = welcome.startIndex ..< welcome.index(welcome.startIndex, offsetBy: 3)

welcome.removeSubrange(range)

print(welcome)

 

截取子字符串

var welcome = "hello,world"

let index = welcome.firstIndex(of: ",") ?? welcome.endIndex

//子串不适合长期存储,因为它们重用原始字符串的存储

let beginning = welcome[..<index]

//保存为一个新字符串做持久存储

let newStr = beginning

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值