swift 字符串
2017-02-03 16:24
211 查看
字符串字面量
可以在代码中包含一段预定义的字符串值作为字符串字面量。字符串字面量是由双引号包裹着的具有固定顺序的文本字符集。字符串字面量可以用于为常量和变量提供初始化值:let someString = "some string"
初始化空字符串
要创建一个空字符串作为初始值,可以将空的字符串字面量赋值给变量,也可以初始化一个新的string实例:var emptyString = "" var anotherEmptyString = String()可以通过检查其bool类型的isEmpty属性来判断字符串是否为空:
if emptyString.isEmpty{ print("empty") }
字符串可变性
可以通过将一个特定字符串分配给一个变量来对其进行修改,或者分配给一个常量来保证其不会被修改:var variableString = "Horse" variableString += "and carriage"
使用字符
for character in "Dog!?".characters { print(character) }
通过标明一个Character类型并用字符字面量进行赋值,可以建立一个独立的字符串常量或者变量:
let exclamationMark:Character = "!"字符串可以通过传递一个值类型为Character的数组作为自变量来初始化:
let catCharacters:[Character] = ["C","a","t","!","?"] let catString = String(catCharacters) print(catString)
连接字符串和字符
字符串可以通过加法运算符相加在一起创建一个新的字符串:let string1 = "hello" let string2 = "there" var welcome = string1 + string2可以通过加法赋值运算符将一个字符串添加一个已经存在字符串变量上:
var instruction = "look over" instruction += string2可以用append() 方法将一个字符附加到一个字符串变量的尾部:
welcome.append(exclamationMark)
字符串插值
字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式。插入的字符串字面量的每一项都在以反斜线为前缀的圆括号中:let multiplier = 3 let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
访问和修改字符串
字符串索引
每一个String值都有一个关联的索引类型,String.Index,它对应这字符串中的每一个Character的位置前面提到,不同的字符可能会占用不同数量的内存空间,所以要知道Character的确定位置,就必须从String开头遍历每个Unicode标量直到结尾。因此,swift的字符串不能用整数做索引。
使用startIndex属性可以获取一个String的第一个Character的索引。使用endIndex属性可以获取最后一个Character的后一个位置的索引。因此,endIndex属性不能作为一个字符串的有效下标。如果String是空串,startIndex和endIndex是相等的。
通过调用String的index(before:)或index(after:)方法,可以立即得到前面或者后面的一个索引。还可以通过调用index(_:offectBy:)方法来获取对应偏移量的索引,这种方法可以避免多次调用index(before:)或index(after:)方法。
let greeting = "Guten Tag!" greeting[greeting.startIndex]; greeting[greeting.index(before: greeting.endIndex)] greeting[greeting.index(after: greeting.startIndex)] let index = greeting.index(greeting.startIndex, offsetBy: 7) greeting[index]试图获取越界索引对应的Character,将引发一个运行时错误。
greeting[greeting.endIndex] greeting.index(after: greeting.endIndex)使用characters属性的indices属性会创建一个包含全部索引的范围,用来在一个字符串中访问单个字符。
for index in greeting.characters.indices { print("\(greeting[index])") }
插入和删除
调用insert(_:at:)方法可以在一个字符串的指定索引插入一个字符,调用insert(contentsOf:at:)方法可以在一个字符串的指定索引插入一段字符串。var welcome = "hello" welcome.insert("!", at: welcome.endIndex) welcome.insert(contentsOf: "there".characters, at: welcome.index(before: welcome.endIndex))调用remove(at:)方法可以在一个字符串的指定索引删除一个字符,调用removeSubrange(_:)方法可以在一个字符串的指定索引删除一个子字符串。
welcome.remove(at: welcome.index(before: welcome.endIndex)) let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex welcome.removeSubrange(range)
取自《the swift programming language》中文版
相关文章推荐
- 数据库链接字符串查询网站
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Flex字符串比较 还有Flex字符串操作
- Ruby中创建字符串的一些技巧小结
- ASP下经常用的字符串等函数参考资料
- 将字符串小写转大写并延时输出的批处理代码
- 将字符串转换成System.Drawing.Color类型的方法
- Lua源码中字符串类型的实现
- Lua性能优化技巧(四):关于字符串
- 字符串聚合函数(去除重复值)
- Ruby中的字符串编写示例
- 总结的5个C#字符串操作方法分享
- sqlserver中求字符串中汉字的个数的sql语句
- sql server字符串非空判断实现方法
- C#算法函数:获取一个字符串中的最大长度的数字
- VBS的字符串及日期操作相关函数
- C#实现将千分位字符串转换成数字的方法
- jquery 删除字符串最后一个字符的方法解析