import UIKit
class StringViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 1. 可通过for-in循环来遍历字符串中的characters属性来获取每一个字符的值
let string = "abcdefg"
for character in string.characters {
print(character)
}
// 打印:
/* a b c d e f g*/
// 1.1 通过标明一个Character类型并用字符字面量进行赋值,可以建立一个独立的字符常量或变量:
let string1: Character = "!"
print(string1)
// 1.2可将数组初始化为字符串
let string2: [Character] = ["a", "b", "c", "d"]
let string3 = String(string2)
print(string3)
/*打印: abcd */
// 1.2追加字符
var string4 = "Hello "
let string5: Character = "!"
string4.append(string5)
print(string5)
// 2.如果想要获得一个字符串中Character值的数量,可以使用字符串的characters属性的count属性
let unusualMenagerie = "Koala, Snail, Penguin, Dromedary"
print("unusualMenagerie has \(unusualMenagerie.characters.count) characters")
// 3.连接字符串和字符
let string6 = "Hello"
let string7 = "world"
let string8 = string6 + string7
print(string8)
// 打印:Helloworld
// 3.1可以通过加等(+=)将一个字符串加到一个已经存在字符串变量
let code = "Hello"
var code1 = "World"
code1 += code
print(code1)
// 打印:WorldHello
// 4.字符串中间插入值
let multiplier = 3
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
print(message)
// 当创建字符串执行插值计算时此占位符会被替换为multiplier实际的值
// 5 字符串索引:每一个字符串都有一个关联索引的(index)类型,他对应字符串中的每一个字符(Character)使用startIndex属性可以获取一个String的第一个Character的索引。使用endIndex属性可以获取最后一个Character的后一个位置的索引。因此,endIndex属性不能作为一个字符串的有效下标。如果String是空串,startIndex和endIndex是相等的。
let greeting = "Guten Tag!"
greeting[greeting.startIndex]
print(greeting[greeting.startIndex])
// G
// 获取索引的前一位 predecessor
greeting[greeting.endIndex.predecessor()]
print(greeting[greeting.endIndex.predecessor()])
// !
// 获取索引的后一位 successor
greeting[greeting.startIndex.successor()]
print(greeting[greeting.startIndex.successor()])
// u
// 获取指定索引值 advancedBy()
let index = greeting.startIndex.advancedBy(3)
greeting[index]
print(greeting[index])
// e
// greeting[greeting.endIndex] // error
// greeting.endIndex.successor() // error
// 试图获取越界索引对应的Character,将引发一个运行时错误。endIndex属性不能作为一个字符串的有效下标
// 使用characters属性的indices属性会创建一个包含全部索引的范围(Range),用来在一个字符串中访问单个字符。
for list in greeting.characters.indices {
print("\(greeting[list]) ", terminator: "")
}
// 打印输出 "G u t e n T a g ! "
// 6.插入和删除
// 调用insert(_:atIndex:)方法可以在一个字符串的指定索引插入一个字符。
var welcome = "hello"
welcome.insert("!", atIndex: welcome.endIndex)
print(welcome)
// 打印:hello!
// 调用insertContentsOf(_:at:)方法可以在一个字符串的指定索引插入一个字符串。
welcome.insertContentsOf("there".characters, at: welcome.endIndex.predecessor())
print(welcome)
// 打印:hellothere!
// 调用removeAtIndex(_:)方法可以在一个字符串的指定索引删除一个字符。
welcome.removeAtIndex(welcome.endIndex.predecessor())
print(welcome)
// 打印: hellothere
// 调用removeRange(_:)方法可以在一个字符串的指定索引删除一个子字符串。
let range = welcome.endIndex.advancedBy(-6)..<welcome.endIndex
welcome.removeRange(range)
print(welcome)
// 打印:hell
// 7.比较字符串
// Swift 提供了三种方式来比较文本值:字符串字符相等、前缀相等和后缀相等。
let quotation = "We're a lot alike, you and I."
let sameQuotation = "We're a lot alike, you and I."
if quotation == sameQuotation {
print("We're a lot alike, you and I.")
}
}
}
Swift 字符串基础
最新推荐文章于 2022-10-29 12:14:24 发布