gpt4 book ai didi

arrays - 在 Swift 3 中将字符串转换为不带引号的数组

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:42 26 4
gpt4 key购买 nike

我的问题:

This answer解释了如何将包含由空格分隔的元素的字符串转换为数组。

let numbers = "1 2 3 4"
let numbersArray = numbers.components(separatedBy: " ")
print(numbersArray)
// output: ["1", "2", "3", "4"]
// but I want: [1, 2, 3, 4]

但是,我试图创建一个不带引号的数组,因为我正在创建一个数字数组,而不是字符串数组。

我的尝试:

我尝试从 numbersArray 中删除所有引号,但这不起作用,因为它是一个数组,而不是一个字符串。

numbersArray.replacingOccurrences(of: "\"", with: "") // won't work

我尝试了一些不同的方法:我尝试将数组中的每个元素添加到一个新数组中,希望新数组不包含引号。不过,我遇到了一个错误:

let numbers = "1 2 3 4" // string to be converted into array without quotes
let numbersArray = numbers.components(separatedBy: " ") // convert string into array with quotes
var newNumbersArray = [String]() // new blank array (which will be without quotes)
for i in numbersArray { // for each item in the array with quotes
newNumbersArray += i // (hopefully) add the item in the new array without quotes
}
print(newNumbersArray) // print the new array

这给了我一个错误:

Swift:: Error: cannot convert value of type '[String]' to expected argument type 'inout String'
newNumbersArray += i

最佳答案

您可以申请 flatMap调用调用 components(separatedBy:) 产生的 [String] 数组,应用可失败的 init(_:radix:) of IntflatMap 调用的转换闭包体中:

let strNumbers = "1 2 3 4"
let numbersArray = strNumbers
.components(separatedBy: " ")
.flatMap { Int($0) }

print(numbersArray) // [1, 2, 3, 4]
print(type(of: numbersArray)) // Array<Int>

关于arrays - 在 Swift 3 中将字符串转换为不带引号的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45434304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com