1,简介
swift中的用于表示字符串的类型为 String 用于表示字符集。swift的String具有以下特点:
<1> swift中的String 与Object-C的NSString 有很大程度上的相同,具体来说就是其中的许多基础的API几乎相同。 在Foundataion框架中,许多要求传入NSString的参数都可以使用String类型来代替,但是有一点请注意,在swift中,同样有NSString类型,不能认为String 类型就是 NSString类型。
<2>String 是一种值类型,这一点与NSString 有所不同,在Object-C中,你将NSString对象作为参数传递的时候,其实只是将其对象的引用作为参数进行了传递,换句话说,你只是将这个对象的指针给了参数。而String 不同,应该把它看成一种深拷贝,即将整个对象复制了一份,然后将这个副本的指针赋给了参数。注意,在实际的编译过程中,swift会优化字符串的使用,使得只有在必须的情况下才会真正的拷贝。但是无论什么时候,都应该将其看做一种值类型。
2 如何使用String?
<1>初始化一个字符串
let str:String = "hello world"
var str2 = String()
var str3 = ""
<2>字符串长度:
let s:String = "hello"
print(s.characters.count)
<3>字符串插值,swift 设计的一种简单的构建新字符串的方式
//创建一个字符串,在 \(varName) varName会被替换为相应的值
let str :String = "world"
let str2:String = "hello \(str)"
print(str2)
//print:hello world
<4>字符串是否为空?
//判断字符串是否为空
let str = ""
print(str.isEmpty)
//print: true
<5>字符串连接
//连接字符串
let str = "hello "
let str2 = "world"
let str3 = str+str2
print(str3)
//print: hello world
<6>字符串的插入、删除、修改、追加、截取、切割、替代等
//在某个位置插入某个字符
var str:String = "hello world"
str.insert("*", at: str.index(str.startIndex, offsetBy: 2))
print(str)
//print: he*llo world
//在某个位置插入字符串
var str:String = "hello world"
str.insert(contentsOf: "123".characters, at: str.index(str.startIndex, offsetBy: 2))
print(str)
//print he123llo world
//在某个位置追加字符串和字符
var str:String = "hello world"
str.append("!")//追加字符
str.append("123")//追加字符串
print(str)
//print: hello world!123
//遍历字符串
let str:String = "123"
for value in str.characters{
print(value)
}
//移除某个字符或者字符串
var str = "hello world"
str.remove(at: str.index(str.startIndex, offsetBy: 2))//移除字符
print(str)
//print: helo world
str.removeSubrange(str.startIndex..<str.index(str.endIndex, offsetBy: -4))
print(str)
//print: orld
//代替某段字符串或者某个字符串
var str = "hello world"
var str2 = "你好 世界"
str.replaceSubrange(str.startIndex..<str.endIndex, with: str2.characters)
print(str)
//print: 你好 世界
//截取某段字符串或者某个字符串
let str = "hello world"
let str2 = "你好 世界"
print(str.substring(to: str.index(str.startIndex, offsetBy: 2)))
//print : he
print(str2.substring(from: str2.index(str2.endIndex, offsetBy: -2)))
//print : 世界
//切割某段字符串或者某个字符串
let str = "hello world"
let arr:Array = str.components(separatedBy: " ")
print(arr)
//print: ["hello", "world"]