gpt4 book ai didi

Swift 3 大写字符串

转载 作者:可可西里 更新时间:2023-11-01 00:35:51 27 4
gpt4 key购买 nike

    let first = postalText.text?[(postalText.text?.startIndex)!]
let second = postalText.text?[(postalText.text?.index((postalText.text?.startIndex)!, offsetBy: 1))!]
let third = postalText.text?[(postalText.text?.index((postalText.text?.startIndex)!, offsetBy: 2))!]

我正在尝试将第一个和第三个字符大写,然后将所有 3 个字符合并为一个新字符串但 .uppercase 和 .capitalized 不起作用。

另外,我如何检查第二个字符是否为数字?

最佳答案

.uppercased.capitalized 仅适用于字符串,您显示的是 Character。您可以将 Character 转换为 String 并使其大写。

let firstCapitalized = String(first!).capitalized

如果你想检查一个Character是否是一个int,你也可以把它变成一个String,然后检查是否转换String 作为一个 Int 是非零的:

if Int("\(second!)") != nil {
print("Is Integer")
}

这些情况都假设您的第一个、第二个和第三个都不是零,并强制展开它们。

编辑我有一些空闲时间并且忽略了一些关于 SO 的旧帖子,我意识到我发布的这个答案没有使用最好的编码形式。首先,强行打开任何东西总是一个坏主意(这是 future 崩溃的秘诀),所以对于第一部分。做这样的事情:

let firstCapitalized = String(first ?? "").capitalized

如果first == nil,这至少会给你一个回退,然后你只会被一个空字符串卡住。

对于第二部分,我将使用可选的展开而不是 if Int("\(second!)") != nil。我会说更合适的方法是这样的:

if let second = second, let stringConvertedToInteger = Int("\(String(second))") {
print("\(stringConvertedToInteger) is an integer")
} else {
print("Either second is nil, or it cannot be converted to an integer")
}

这将选择性地展开字符 second,如果它有一个值,则将其转换为一个整数(如果它是一个,通过可选的展开检查)。这是最安全的方法,不会让您遇到任何运行时错误。

关于Swift 3 大写字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182782/

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