概述
关于字符串
在OC中,字符串是NSString类。
而在Swift中,字符串是String结构体。
结构体比起类,性能更好,String结构体支持遍历。
在Swift中,提供了NSString转String的便捷方法。
根据字符串取得类
通过字符串取得类是这么做的:
NSClassFromString(<ClassName: String>)->AnyClass?
从上可以发现,返回的是一个AnyClass类型,并且还是个可选类型。
需要注意的是,在Swift中,我们传入的类型需要包含命名空间,命名空间默认是我们项目名称。
be like:
NSClassFromString("IDB.HomeController")
IDB是我的项目的项目名称,也是就默认的命名空间,HomeController是我想要通过字符串创建的控制器。
这样的方法可以帮助我们后期通过网络请求,来动态加载一些固定View的样式,比如根据节日活动更换图片以及tabbar上title的文字,比如更换成不同的自定义View等等。
遍历字符
在Swift5.0之前,characters属性是可以用的,但在Swift5.0后,该属性就淘汰了。
for subCharacter in string.enumerated(){
print(subCharacter)
}
let characters = string.enumerated()
print(characters)
运行结果:
(offset: 0, element: "h")
(offset: 1, element: "e")
(offset: 2, element: "l")
(offset: 3, element: "l")
(offset: 4, element: "o")
(offset: 5, element: "w")
(offset: 6, element: "o")
(offset: 7, element: "r")
(offset: 8, element: "l")
(offset: 9, element: "d")
EnumeratedSequence<String>(_base: "helloworld")
格式化字符串
在实际开发中,我们常需要用到格式化的字符串,比如08,或者0.8,或者保留两位小数等等。这时我们就需要用到字符串的格式化。
之前Swift还是可以使用String(format: arguments:[ ])方法来进行格式话的,但是后来似乎是被淘汰掉了。
感觉是Swift在字符串的有些方面越改是越复杂,如果大家没有找到好的方法,还是先采用的还是OC时代的一些做法:也就是先用NSString处理,然后再转回String。
let h = 8
let m = 23
let s = 9
let timeString = NSString.init(format: "%02d:%02d:%02d", h,m,s)
print(timeString)
运行结果:
08:23:09
判断是否包含字符
var a = "hello"
if a.contains("hell"){
print("hell")
}
追加字符
var a = "hello"
a.append(" world")
print(a)//运行结果:hello world
插入字符
var a = "hello"
//从0开始算,在3的位置插入“ ”
a.insert(contentsOf:" ", at:a.index(a.startIndex, offsetBy:3))
print(a)//运行结果:hel lo
获取子字符串:
var a = "hello"
//假设我们要获取ell
//则需要先获取起始位置(编号是从0开始的)
var subStringStart = a.index(a.startIndex,offsetBy:1)
//再获取结束位置(编号是从0开始的)
var subStringEnd = a.index(a.startIndex,offsetBy:3)
a = a[subStringStart...subStringEnd]
print(a)
运行结果:
ell
当然也有获取前缀和后缀的方法,就是调用oc的方法,这里就不说明了。
a.prefix(4)//hell
拼接字符串:
var a = "hello"
var b = "world"
a = a + b //同字符串类型直接拼接
//不同类型的字符串拼接需要用()语法
var c = 11
a = a + "(c)"
循环字符串
好骚的操作
var a = "hello"
for index in a {
print(index)
}
运行结果:
h
e
l
l
o
其他
被#“和”#包含起来的代码全部会当成字符串处理。
var a = "hello"
//如果输出的时候想要字符串带上引号
var b = #""hello""#
print(b)
//这样b就会输出:"hello"
最后
以上就是纯情鞋垫为你收集整理的Swift基础 String类型关于字符串的全部内容,希望文章能够帮你解决Swift基础 String类型关于字符串所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复