iOS开发 -- Swift之字符串(四)

2016-09-07  本文已影响0人  Sorphiean

字符串

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

//判断一个字符串是否为空
emptyString.isEmpty
str + mark          //不改变原字符串
str += mark         //改变原字符串

Character和Unicode

//这里的c是 Character 类型
for c in str.characters {
    print(c)
}
let mark1 = "!"                 //这里mark是String类型
let mark2:Character = "!"

注意:Swift里面字符也是用双引号表示的,区分字符和字符串的关键是要显示的声明类型。

mark1 + String(mark2)           //需要强制转换
或者
mark1.append(mark2)

Swift语言中字符串的优势

let englishLetter:Character = "a"
let chineseLetter:Character = "安"
let dog:Character = "🐶"
let coolGuy:Character = "\u{1F60E}"
//这样Swift在判断字符串的时候会更加精准

var cafe = "café"
var cafe2 = "cafe\u{0301
cafe == cafe2
cafe.characters.count == cafe2.characters.count

let s4 = "🐶🐶🐶"
let s5:NSString = "🐶🐶🐶"
s4.characters.count                     //3
s5.length                               //6

String.Index和Range

//以下两种方式都是错误的
str[0]
str.characters[0]
var str: String = "Hello, playground"

let startIndex = str.startIndex
startIndex              //这里的startIndex是Index类型
str[startIndex]
str[startIndex.advancedBy(5)]

str[spaceIndex.predecessor()]       //当前索引的前一个索引
str[spaceIndex.successor()]         //当前索引的后一个索引

let endIndex = str.endIndex         //这里的最后一个索引是字符串最后一个字符的下一个位置
//[startIndex , endIndex)   这是一个前闭后开的区间
str[endIndex.predecessor()]

str[startIndex..<spaceIndex]
let range = startIndex..<spaceIndex         //这里产生一个新类型,range

str.replaceRange(range, with: "Hi")
str.removeRange(str.endIndex.advancedBy(-2)..<str.endIndex)

as 和 NSString

var s2: String = NSString(format: "123") as String 

var s3 = "123" as NSString
let s6 = "   ---Hello--  " as NSString
s6.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString:" -"))

上一篇下一篇

猜你喜欢

热点阅读