gpt4 book ai didi

swift - 在 Swift 3.0 中,如何在输入时使字符串中的一个字符向后移动?

转载 作者:行者123 更新时间:2023-11-30 12:44:26 26 4
gpt4 key购买 nike

我是 Swift 新手。我正在尝试提出预算申请。这个应用程序有一个类似键盘的计算器。我的想法是当用户进入金钱应用时会自动为用户添加一位小数。

例如,如果您输入 1230,它将显示 12.30,输入 123 将显示 1.23

我在下面写了几行代码。问题是它只能在第一个数字后添加小数点,当您给出更多数字时,它不会向后移动。只能显示为X.XXXXX

我尝试用 String.index(也许增加索引?)和 NSNumber/NSString 格式解决这个问题。但我不知道这个方向是否正确。

    let number = sender.currentTitle!
let i: String = displayPayment.text!

if (displayPayment.text?.contains("."))!{

displayPayment.text = i == "0" ? number : displayPayment.text! + number

}
else {

displayPayment.text = i == "0" ? number : displayPayment.text! + "." + number

}

最佳答案

索引 Strings Swift 并不像许多人希望的那样“直接”,这仅仅是由于字符串内部的表示方式。如果您只想在用户输入的倒数第二个位置之前添加 . ,您可以这样做:

let amount = "1230"
var result = amount

if amount.characters.count >= 2 {
let index = amount.index(amount.endIndex, offsetBy: -2)
result = amount[amount.startIndex..<index] + "." + amount[index..<amount.endIndex]
} else {
result = "0.0\(amount)"
}

因此,对于1230的输入,结果将是12.30。现在您可能需要根据您的具体需求进行调整。例如,如果用户输入 30,此代码将生成 .30(这可能是您想要的,也可能不是您想要的)。

关于swift - 在 Swift 3.0 中,如何在输入时使字符串中的一个字符向后移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41809954/

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