玩转swift字符串——Advanced

玩转swift字符串——Advanced,第1张

概述最近在尝试学一些iOSswift开发,要做一个“四则运算计算器”,其中涉及到很多字符串运算,终于在不断查阅文档和stackoverflow的情况下完成。感慨道,swift的开发手册太过于简单呐,完全不够用,很多东西还得自己摸索,但其中唯一不变的真理就是:“请在 playground 里面好好玩耍吧!!!” 在这里,我把我搜集到的知识与大家分享一下 String 和 Character 字符串声明

最近在尝试学一些iOSswift开发,要做一个“四则运算计算器”,其中涉及到很多字符串运算,终于在不断查阅文档和stackoverflow的情况下完成。感慨道,swift的开发手册太过于简单呐,完全不够用,很多东西还得自己摸索,但其中唯一不变的真理就是:“请在playground里面好好玩耍吧!!!”

在这里,我把我搜集到的知识与大家分享一下

String 和 Character

字符串声明

var str = "Hello,playground" let str2 = String()

判断是否为空

str.isEmpty

字符串长度

countElements(str) //如果是Nsstring,那么长度就是 var str3:Nsstring = str str3.length

字符串的遍历

for eachChar in str{ println eachChar } //这时有人会问,那么我想从后往前遍历呢?! in reverse){ println eachChar }

字符串拼接

//拼接字符串型 str += " Hello" //拼接非字符串型 var chCharacter = "!" str.append(ch) //或者 str "\(ch)"

字符串的插值

//String Interpolation let imIntInt = 2 let imDoubleDouble 3.14 let imBoolBool = true let imstringString "hello" let imTuple = (2,4) let imOptionnalInt? nil let imCharacter"!" println("\(imInt)\n\(imDouble)\n\(imBool)\n\(imstring)\n\(imTuple)\n\(imOptionnal)\n\(imCharacter)") String基础 *** 作

字符串比较

//String Comparison let str_a "abc" let str_b "abc" str_a == str_b //true let str_c "abd" < str_c //因为 d 要比 c 靠后,所以 true let str_d "abcd" str_c > str_d //虽然 str_c 有三个,str_d 有四个,但是 d 比 c 要靠后, 所以 true str_b < str_d //前三位相同,但是str_d 有第四位,所以 true

前缀/后缀 我在这里就不说了,每个文档都会讲

导入Foundation使用更多字符串功能

使用 Foundation,其实每个”.swift”文件都已经默认导入 Foundation 了,所以不需要我们再在头部导入

//default import Foundation str.cAPItalizedString //大写首字母 str.uppercaseString //全部转大写 .lowercaseString //全部转小写

字符串修剪

var str5 " !hi!!! " //清除空格 str5.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) //清除特定字符 如“!” str5(charactersInString:" !"))

字符串分割

var str6 "welcome to play swift" //以空格作为分割依据 str6.componentsSeparatedByString" ") var str7 "welcome to play swift!Step-by-step learn from Now" //以特定字符作为分割依据 如:" ","!","-"三个 str7.componentsSeparatedByCharactersInSet: " !-"字符串链接

var str8 "-"
str8.join(["2""3""4""5"]) //输出:2-3-4-5

String、Int、float、Double 互相转换

//String to Int "4" str.toInt() //String to float var str1 "3.14" //下面的方法 return 3.14000010490417 ,个人建议最好还是使用下面的方法转换成double比较好 Nsstring(string: str1).floatValue //String to Double var str2 "1.3333" : str2).doubleValue //return 1.3333 //Int to String var num 234 (num//float to String var num1 = 3.14 (format"%f" num1) //return "3.140000" "%.2f"//return "3.14"

Something else

如果你对 3.140000 这种形式的数字感到恶心的话,那么你就对了因为我也是这样,试想:

var result 3.125 + 4.875 //return 8.0,It's good! //但是你如果使用String(format:)进行转换 result//return 8.00000 It's bad! //所以你不如直接使用“字符串插值”的方法 \(result)” String.Index 和 Range

在swift语言中,你会发现很多函数参数中要求 String.Index 类型,那下面我们就用实例来说明什么是 String.Index 类型范围

str7 "Welcome to play swift!step by step learn from Now" .rangeOfString"step"//return 22..<26 //从后往前搜索,需要第二个参数 optionsNsstringCompareOptions.BackwardsSearch//return 30..<34 //我们同样可以设置第二个参数,表示匹配串忽略大小写限制“原字符串中是 Welcome,我们搜索 welcome” "welcome": CaseInsensitiveSearch//return 0..<7 String.Index 是什么? str7 "Welcome to play swift!step by step learn from Now" str7.startIndex //0 str7.endindex //49 //range between 0..<49 let strRange Range<Index>(start:str7.startIndex end.endindex) //注意这里,startIndex 和 endindex 是 String.Index 类型的,不是 Int 类型!! let startIndexIndex = str7//0 let endindex= advance(str7 10//10 //这里定义了一个 Range 类型,由 start 和 end 两个参数构成 let searchRange :startIndex:endindex) //在定义的范围“searchRange”内进行搜索 *** 作 range: searchRange)

截取子串

var toIndex //从字符串开头开始到即第4个字符 str7.substringToIndex(toIndex// Welc var fromIndex 14) //从字符串某个位置开始向后 14 位 .substringFromIndex(fromIndex// y swift!step by step le... //在字符串 4 位置开始,到 14 位置结束 .substringWithRange:toIndex:fromIndex)) //ome to pla

获取字符串最后一个字符

//方法一 .predecessor()) //方法二-较繁琐 var lastChar countElements) - 1) var lastChar (lastChar)

字符串插入

var insertIndex 22//在第 22 字符的后面插入 str7.insert"!" atIndex: insertIndex字符串删除

str7.removeAtIndex(insertIndex.removeRange:insertIndex字符串替换

var replaceEndindex 13.stringByReplacingCharactersInRange:replaceEndindex), withString"Step-by-step")
总结

以上是内存溢出为你收集整理的玩转swift字符串——Advanced全部内容,希望文章能够帮你解决玩转swift字符串——Advanced所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1085427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)