Skip to content

String 字符串

声明

可以直接使用双引号声明,或者使用 String 方法

swift
var str1 = "插电"
var str2 = ""
var str3 = String()

重复字符串

String 方法可以传入 repeatingcount 参数重复内容

repeating 代表需要重复的字符串,count 代表需要重复的次数

swift
var str4 = String(repeating: "a", count: 10) // 重复一个字符串重复 10 次

// aaaaaaaaaa

多行文本

"""" 三个引号包裹的内容可以换行打印

swift
let str5 = """
hdhdjashd
dakjdjaksd
djakdjkas
"""

末尾加入 \ 可以将多行问你转换为单行

swift
let str6 = """
hdhdjashd\
dakjdjaksd\
djakdjkas
"""

带引号的

#""# 包裹的字符串可以将内部的引号打印

swift
let str7 = #""带有引号的字符串""#

print(str7) // "带有引号的字符串"

字符串拼接

使用 + 可以拼接 字符串

swift
let str8 = "张三"
let str9 = "是个好人"
print(str8 + str9)

是否为空

isEmpty 可以判断字符串是否为空

swift
let str = ""

print(str.isEmpty) // true

获取长度

count 可以获取字符串长度

swift
let str = "字符串"

print(str.count) // 3

获取值

description 方法可以获取字符串的值

swift
let str = "字符串"

print(str.description) // 字符串

调试的值

调试输出字符串的值

swift
let str = "字符串"

print(str.debugDescription) // "字符串"

获取 hash

获取变量的位置 hash 值

swift
let str = "字符串"

print(str.hashValue)

转换大小写

uppercasedlowercased 方法可以将字符串转换大小写

swift
let str = "This is a Test"

print(str.uppercased()) // 大写
print(str.lowercased()) // 小写

是否以什么开头或者结尾

uppercasedlowercased 方法可以判断是否以什么开头或者结尾

swift
print("1234567".hasPrefix("123"))
print("1234567".hasSuffix("567"))

普通遍历

使用 for in 遍历

swift
var str = "这是一段测试字符串"

for c in str {
   print(c)
}

索引遍历

使用 for in 遍历,这里是索引并不是从 0 开始

swift
var str = "这是一段测试字符串"

for index in str.indices {
  print(str[index], index)
}

索引获取元素

获取第一个索引的元素

swift
var str = "这是一段测试字符串"

print(str[str.startIndex])

获取最后索引的元素

swift
var str = "这是一段测试字符串"

print(str[str.index(before: str.endIndex)])

获取最后索引前两位的元素

swift
var str = "这是一段测试字符串"

print(str[str.index(before: str.endIndex, offsetBy: -2)])

字符串转换为数组

split 方法传递 separator 参数可以根据指定分隔符讲字符串转换为数组

swift
var a = "苹果,香蕉,橘子"

print(a.split(separator: ",")) // ["苹果", "香蕉", "橘子"]

whereSeparator 参数可以是一个条件,根据条件执行分隔规则

swift
var a = "苹果,香蕉,橘子"
var b = "苹果,香蕉|橘子/西瓜"

var res1 = a.split(separator: ",")
var res2 = a.split(whereSeparator: {item in
    item == "," || item == "|" || item == "/"
})

print(res1) // ["苹果", "香蕉", "橘子"]
print(res2) // ["苹果", "香蕉", "橘子"]