目录
  • 1. 构造
  • 2. 拼接
  • 3. 字符
  • 4. 转义符
  • 5. 常用方法

swift 字符串类型及常用方法

1. 构造

// 直接赋值
text = ""

// 1. 构造方法
text = string() // ""
// 字符串构造
text = string("william") // "william"
// 整型构造
text = string(888) // "888"
// 浮点型构造
text = string(8.88) // "8.88"
// 字符构造
text = string("a") // "a"
// 布尔型构造
text = string(true) // "true"
// 元组构造
text = string(describing: (5, 5.0, true)) // "(5, 5.0, true)"
// 列表构造
text = string(describing: [1, 2, 3, 4]) // "[1, 2, 3, 4]"
// 格式化字符串
text = string(format: "hello, %@", "william") // "hello, william"

2. 拼接

var text1 = "hello, "
var text2 = "william"
var result = text1 + text2
print(result) // hello, william

// 3. 在字符串中插入简单值使用 \() ,类似于 kotlin 中的 ${}
var target = "hello, \(66)" // hello, 66

var target2 = "hello, \(text2)" // hello, william

var target3 = "hello, \(1 + 2)" // hellow, 3

3. 字符

var char : character = "e" // "e"
var char2 = character("e") // "e"
// 占用16个字节
var size = memorylayout<character>.size // 16
// 字符数组
var array : [character] = ["w", "i", "l", "l", "i", "a", "m"]
// 构造string
var newstr = string(array) // william
// 遍历字符串
let city = "shanghai"
for cha in city {
    print(cha)
}

4. 转义符

转义字符常用于排版

// 
// \0:表示空白符
// \\:表示反斜杠
// \t:表示制表符
// \n:表示换行符
// \r:表示回车符
// \':表示单引号
// \":表示双引号
// \u{}:用unicode码创建字符
var code = "\u{0068}\u{0065}\u{006c}\u{006c}\u{006f}" // hello
var escapechar = "空白符:\0反斜杠:\\制表符:\t换行符\n回车符:\r单引号:\'双引号:\""
print(escapechar)
:表示空白符 // \\:表示反斜杠 // \t:表示制表符 // \n:表示换行符 // \r:表示回车符 // \':表示单引号 // \":表示双引号 // \u{}:用unicode码创建字符 var code = "\u{0068}\u{0065}\u{006c}\u{006c}\u{006f}" // hello var escapechar = "空白符:
// \0:表示空白符
// \\:表示反斜杠
// \t:表示制表符
// \n:表示换行符
// \r:表示回车符
// \':表示单引号
// \":表示双引号
// \u{}:用unicode码创建字符
var code = "\u{0068}\u{0065}\u{006c}\u{006c}\u{006f}" // hello
var escapechar = "空白符:\0反斜杠:\\制表符:\t换行符\n回车符:\r单引号:\'双引号:\""
print(escapechar)
反斜杠:\\制表符:\t换行符\n回车符:\r单引号:\'双引号:\"" print(escapechar)

5. 常用方法

// 字符串判空
var emptystr = ""
if emptystr.isempty {
    print("string is empty")
}
if emptystr.count == 0 {
    print("string count is 0")
}

// 字符串判大小,会逐个比较字符大小
let str1 = "100a", str2 = "101a"
if (str1 < str2) {
    print("str1 < str2")
}
// 字符串判相等,会比较所有字符的位置都相等,才为相等的字符串
if (str1 == str2) {
    print("str1 < str2")
}

// 使用下标访问字符
var indexstr = "hello, william"
// 获取起始下标
var startindex: string.index = indexstr.startindex
var endindex: string.index = indexstr.endindex
// 获取某个下标后一个下标对应的字符
var afterchar = indexstr[indexstr.index(after: startindex)] // e
// 获取某个下标前一个下标对应的字符
var beforechar = indexstr[indexstr.index(before: endindex)] // m

// ... 运算符指定范围,从 startindex 向后移动4位截取子串
var substr = indexstr[startindex...indexstr.index(startindex, offsetby: 4)] // hello
// 从endindex 向前移动7位截取子串
var substr2 = indexstr[indexstr.index(endindex, offsetby: -7)..<endindex] // william

// 获取范围
var range = indexstr.range(of: "hello")
// 追加字符串
indexstr.append(character("."))
indexstr.append(" append string") // hello, william. append string

// 插入单个字符到指定位置 hello, william.# append string
indexstr.insert("#", at: indexstr.index(startindex, offsetby: 15))

// 插入一组字符 hello, william.-#-# append string
indexstr.insert(contentsof: ["-", "#", "-"], at: indexstr.index(startindex, offsetby: 15))

// 替换指定范围的字符串 how are you.-#-# append string
indexstr.replacesubrange(startindex...indexstr.index(startindex, offsetby: 13), with: "how are you")

// 删除指定位置的单个字符 how are you.-#-# append strin
indexstr.remove(at: indexstr.index(before: indexstr.endindex))

// 删除指定范围 -#-# append strin
indexstr.removesubrange(indexstr.startindex...indexstr.index(indexstr.startindex, offsetby: 11))

// 删除所有字符 ""
indexstr.removeall()

// 转换大小写
var uppercase = "hello, swift".uppercased() // hello, swift
var lowercase = "hello, swift".lowercased() // hello, swift

// 检查前后缀
var hasprefix = uppercase.hasprefix("he") // false
var hassuffix = lowercase.hassuffix("ft") // true

github 源码:stringtype.playground

到此这篇关于swift 字符串类型及常用方法详解总结的文章就介绍到这了,更多相关swift 字符串 内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!