关于Swift String日常使用总结

最近写基于Swift 4.0的项目,每次用到String的时候就要去查询半天,再与NSString对比,实在忍受不了查找了,就自己总结一下常用的用法吧,正好也是第一次尝试写文章,希望能每周坚持写一篇总结。

废话不多说开始总结:

1、正常用法:

let greeting ="Welcome"

2、多行字符串文字Swift 4.0新的用法:

如果要使用换行符来使源代码更容易阅读,但是您不希望换行符成为字符串值的一部分,请在这些行的末尾写入反斜杠(\)
同时注意特殊符号的用法 \" , ' , \t , \0 , \n , \r , \\ 等等

let quotation = """
\"Hello this is Multiline \
String Literals
please input you name
"哈哈哈,是不是很爽"
what are you doing
"""

3、初始化空字符串

//初始化空字符串
var emptyString = ""
var otheremptyString = String()
//判断是否是空字符串
if emptyString.isEmpty {
    print("空字符串")
}
//赋值
otheremptyString = "Hello"
//count 统计长度 
print(otheremptyString.count)//此处输出5
//以C语言的字符串初始化
let cStr = String(cString:...)
//以URL初始化
let urlStr = String(contentsOf: URL, encoding: String.Encoding)
//以File路径初始化
let fileStr = String(contentsOfFile: String, encoding: String.Encoding)
//以Data类型初始化
let urlStr = String(data: Data, encoding: String.Encoding)
// 格式化初始字符串
let f = 123.4322
let fStr = String(format: "%.2f", f)
print("fStr = \(fStr)")  
// 以subString 初始化字符串
let substr = String(Substring)

4、访问和修改字符串

let greeting = "Guten Tag!"
let start = greeting[greeting.startIndex]
print("start = \(start)")//start = G
let beforeEnd = greeting[greeting.index(before: greeting.endIndex)]
print("beforeEnd = \(beforeEnd)")//beforeEnd = !
let afterStart = greeting[greeting.index(after: greeting.startIndex)]
print("afterStart = \(afterStart)")//afterStart = u
let index = greeting.index(greeting.startIndex, offsetBy: 6)
print("index = \(index)")
let m = greeting[index]
print("m = \(m)")//m = T
//insert方法貌似已经被去掉
let r = greeting.remove(at: index)
print("r = \(r)")//r = T
print("greeting = \(greeting)")//greeting = Guten ag!
let range = greeting.index(greeting.endIndex, offsetBy: -5)..<greeting.endIndex
greeting.removeSubrange(range)
print("greeting = \(greeting)") //greeting = Gute

5、拼接字符串 + 或 += 或 append

let k = emptyString + "  dsjjdjsjd"
print(k)
otheremptyString += " Boy!"
print(otheremptyString)
let ex: Character = "!"
otheremptyString.append(ex)
print(otheremptyString)

6、比较或截取字符串

let quotation = "We're a lot alike, you and I."
let sameQuotation = "We're a lot alike, you and I."
if quotation == sameQuotation { // == 判断是否相等 !=判断不等
    print("These two strings are considered equal")
}
let hasPreFixStr = "Welcome Hello World!"
if hasPreFixStr.hasPrefix("W") {
    print("以W开头")
}
if hasPreFixStr.hasSuffix("!") {
    print("以!结尾")
}
let dogStr = "Dog!!🐶"
for scalar in dogStr.unicodeScalars {
    print("\(scalar) ")
}//UnicodeScalar, 可以直接打印unicode字符
let pre = hasPreFixStr.prefix(3)
let suf = hasPreFixStr.suffix(3)
let dropFirst = hasPreFixStr.dropFirst()
let dropLast = hasPreFixStr.dropLast()
//注意这些pre、suf、dropFirst、dropLast是SubSequence也就是Substring类型,要使用再转换成String 
let newStr = String(suf)

7、字符串按对应的字符分割为数组

 let line = "BLANCHE:   I don't want realism. I want magic!"
 print(line.split(separator: " "))
//["BLANCHE:", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]
 print(line.split(separator: " ", maxSplits: 1))
//["BLANCHE:", "  I don\'t want realism. I want magic!"]
 print(line.split(separator: " ", omittingEmptySubsequences: false))
//["BLANCHE:", "", "", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]

8、其实写到最后这些在iBook的swift官方文档、还有直接command+control 点击进去看属性都有完整的例子告诉我们如何使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容