gpt4 book ai didi

ios - 快速将用户输入转换为 Ints 数组

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

我正在尝试制作一个简单的 iOS 游戏来快速学习编程。用户在文本字段中输入一个 4 位数字(如果重要,则使用键盘类型的数字键盘),我的程序应该采用该 4 位数字并将每个数字放入一个数组中。基本上我想要类似的东西

userInput = "1234"

成为

inputArray = [1,2,3,4]

我知道在 swift 中将字符串转换为字符数组非常容易

var text : String = "BarFoo"
var arrayText = Array(text)
//returns ["B","a","r","F","o","o"]

我的问题是我需要我的数组填充整数,而不是字符。如果我将用户输入转换为 Int,它将变成单个数字,因此如果用户输入“1234”,数组将由 [1234] 而不是 [1,2,3,4] 填充

所以我尝试将用户输入视为一个字符串,将其字符组成一个数组,然后遍历该数组的元素,将它们转换为 Ints 并将它们放入第二个数组中,例如:

var input : String = textField.text
var inputArray = Array(input)
var intsArray = [Int]()

for var i = 0; i < inputArray.count ; i++ {
intsArray[i] = inputArray[i].toInt()
}

但它没有编译并给我错误:'Character' does not have a member named 'toint'

我做错了什么?

最佳答案

你可以使用:

let text : String = "123a"
let digits = Array(text).map { String($0).toInt()! }
// Crash if any character is not int

但如果输入无效,它会崩溃。

您可以通过检查 toInt() 的结果来验证:

let text : String = "1234"
var digits = Array(text).reduce([Int](), combine: { (var digits, optionalDigit) -> [Int] in
if let digit = String(optionalDigit).toInt() {
digits.append(digit)
}

return digits
})

if countElements(text) == digits.count {
// all digits valid
} else {
// has invalid digits
}

关于ios - 快速将用户输入转换为 Ints 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27500957/

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