Swift 程序将字符串转换为数组
本教程将讨论如何编写 Swift 程序将字符串转换为数组。
字符串是字符的有序集合。例如:"TutorialsPoint"、"Pinky"等。要创建字符串类型变量,我们使用 String 关键字。
var str : String
数组是相似数据类型的集合。与任何整数数组只能包含整数值一样,它不接受字符串值。
var arr = [Int]
要将字符串转换为数组,我们可以使用以下任一方法。
以下是相同的演示 -
输入
假设给定的输入是 -
Value = "true"
输出
所需的输出将是 -
Array = ["t", "r", "u", "e"]
方法 1 - 使用 components(separatedBy:) 函数
要将字符串转换为数组,我们可以使用内置的 components(separatedBy:) 方法。此方法使用指定的字符串分隔符将字符串拆分为子字符串。换句话说,此函数返回一个由给定分隔符分隔的给定字符串子字符串数组。
语法
语法如下:-
mystr.components(separatedBy:sep)
此处,sep 参数用于分隔给定字符串的子字符串。其值可以是字符或字符串。
示例
以下程序演示如何将字符串转换为数组。
import Foundation
import Glibc
// String 1
var myStr1 : String = "Today is the nice day for fishing"
print("原始字符串 1: ", myStr1)
// 数组
var myArr1 = myStr1.components(separatedBy: " ")
print("myStr1 的数组:", myArr1)
// 字符串 2
var myStr2 : String = "I-Like-ChamCham"
print("原始字符串 2:", myStr2)
// 数组
var myArr2 = myStr2.components(separatedBy: "-")
print("myStr2 的数组:", myArr2)
输出
原始字符串 1:今天是钓鱼的好日子 myStr1 的数组:["Today", "is", "the", "nice", "day", "for", "fishing"] 原始字符串 2:I-Like-ChamCham myStr2 的数组:["I", "Like", "ChamCham"]
在上面的代码中,我们有两个不同的字符串 -
var myStr1 : String = "今天是钓鱼的好日子" var myStr2 : String = "I-Like-ChamCham"
现在我们使用 components(separatedBy:) 方法将它们转换为数组 -
var myArr1 = myStr1.components(separatedBy: " ") var myArr2 = myStr2.components(separatedBy: "-")
因此我们得到以下数组 -
Array of myStr1: ["Today", "is", "the", "nice", "day", "for", "fishing"] Array of myStr2: ["I", "Like", "ChamCham"]
方法 2 - 使用 Array() 初始化函数
我们也可以使用 Array() 初始化函数将字符串转换为数组。它会将给定的字符串拆分成一个由单个字符组成的数组。
语法
语法如下:
Array(Value)
示例
以下程序演示了如何将字符串转换为数组。
import Foundation
import Glibc
// String 1
var myStr1 : String = "Today is-nice"
print("原始字符串 1: ", myStr1)
// 数组
var myArr1 = Array(myStr1)
print("myStr1 的数组:", myArr1)
// 字符串 2
var myStr2 : String = "ChamCham"
print("原始字符串 2:", myStr2)
// 数组
var myArr2 = Array(myStr2)
print("myStr2 的数组:", myArr2)
输出
原始字符串 1:今天很好 myStr1 的数组:["T", "o", "d", "a", "y", " ", "i", "s", "-", "n", "i", "c", "e"] 原始字符串 2:ChamCham myStr2 的数组:["C", "h", "a", "m", "C", "h", "a", "m"]
以上代码使用 Array() 初始化函数将两个字符串转换为数组,输出结果如下:
myStr1 的数组:["T", "o", "d", "a", "y", " ", "i", "s", "-", "n", "i", "c", "e"] myStr2 的数组:["C", "h", "a", "m", "C", "h", "a", "m"]
这里可以看到,Array() 会将所有内容(包括字母、空格和特殊字符)转换为任意数组。
方法 3 - 使用 map() 函数
我们也可以使用 map() 函数将字符串转换为数组。它会迭代字符串中的每个字符。或者我们可以说,此方法返回一个数组,其中包含将指定的 close 映射到序列项上的结果。
语法
以下是语法 -
String.map{String($0)}
这里使用 map () 迭代字符串中的每个字符,并使用 $0 将每个字符转换为字符串。
示例
以下程序演示如何将字符串转换为数组。
import Foundation
import Glibc
// String 1
var myStr1 : String = "Today is-nice"
print("原始字符串 1: ", myStr1)
// 数组
var myArr1 = myStr1.map{String($0)}
print("myStr1 的数组:", myArr1)
// 字符串 2
var myStr2 : String = "ChamCham"
print("原始字符串 2: ", myStr2)
// 数组
var myArr2 = myStr2.map{String($0)}
print("myStr2 的数组:", myArr2)
输出
原始字符串 1: Today is-nice myStr1 的数组: ["T", "o", "d", "a", "y", " ", "i", "s", "-", "n", "i", "c", "e"] 原始字符串 2: ChamCham myStr2 的数组: ["C", "h", "a", "m", "C", "h", "a", "m"]
方法 4 - 使用 for 循环
我们也可以使用 for 循环将字符串转换为数组。这里我们使用 for 循环遍历字符串中的每个字符,然后使用 append() 函数将字符添加到数组中。
示例
以下程序演示如何将字符串转换为数组。
import Foundation
import Glibc
// String 1
var myStr : String = "Today is-nice"
print("原始字符串:", myStr)
// 数组
var myArr = [Character]()
// 使用 for 循环将字符串转换为数组
for c in myStr{
myArr.append(c)
}
print("Array:", myArr)
输出
原始字符串: Today is-nice Array: ["T", "o", "d", "a", "y", " ", "i", "s", "-", "n", "i", "c", "e"]