字符串常规用法:
// 字符串和数字之间的转换
var str = "34567"
let num = Int(str)
let number = 3;
let string = String(num!)
// 字符串长度
let len = str.count
// 访问字符串中的单个字符,时间复杂度为O(1)
let char = str[str.index(str.startIndex, offsetBy: 3)]
// 修改字符串
str.remove(at: str.index(str.startIndex, offsetBy: 4))
str.append("c")
str += "hello world"
// 检测字符串是否由数字构成
func isStrNum(str:String) -> Bool {
return Int(str) != nil
}
// 将字符串按字母顺序
func sortStr(str:String) -> String {
return String(str.sorted())
}
Google题:
给出一个字符串,要求将其按照单词顺序进行反转
swift语法知识准备
fileprivate: 表示代码可以在当前文件中被访问
泛型<T>
inout 让值类型以引用方式传递
class p33 {
fileprivate class func _reverse<T>(_ chars:inout [T], _ start:Int, _ end:Int) {
var start = start,end = end
while start < end {
swap(&chars, start, end)
start += 1
end -= 1
}
}
fileprivate class func swap<T>(_ chars:inout [T], _ p:Int, _ q:Int) {
// 元组的用法
(chars[p], chars[q]) = (chars[q], chars[p])
}
class func reverseWords(s:String?) -> String? {
guard let s = s else {
return nil
}
var chars = Array(s.characters), start = 0
_reverse(&chars, start, chars.count - 1)
// ..<是一个半闭区间运算符,不包含最大值的区间
for i in 0 ..< chars.count {
if i == chars.count-1 || chars[i+1] == " " {
_reverse(&chars, start, i)
start = i + 2
}
}
return String(chars)
}
}
网友评论