格式化后从String中删除空格

问题描述 投票:0回答:2

我正在使用输入类型编号从String格式化UITextField:例如:如果我有'10000',我将'10000'格式化为'10000'String

问题:稍后我需要访问此String的Int值,但是在转换时,我得到了一个异常,因为String格式不正确,因为它包含空格。 (示例:Int(“10 000”)无效。)

所以我想在转换到String之前从Int中删除空格,使用:myString.trimmingCharacters(in: .whitespaces)但空格仍然在这里。

我正在使用以下extension

extension Formatter {
    static let withSeparator: NumberFormatter = {
        let formatter = NumberFormatter()
        formatter.groupingSeparator = " "
        formatter.numberStyle = .decimal
        return formatter
    }()
}

extension BinaryInteger {
    var formattedWithSeparator: String {
        return Formatter.withSeparator.string(for: self) ?? ""
    }
}

我还尝试通过以下方式从Formatter中检索原始的NSNumber

print(Formatter.withSeparator.number(from: "10 000").intValue)

但结果也是nil

任何的想法 ?

swift
2个回答
0
投票

myString.trimmingCharacters(in: .whitespaces)将删除字符串开头和结尾的空格,因此您需要通过以下代码删除字符之间的所有空格:

let newString = myString.replacingOccurrences(of: " ", with: "")

然后将newString转换为Int


0
投票

解决了 :

我正在使用的字符串末尾有一个额外的空格。例如:"10 000 ",所以我使用的格式化程序路径是错误的。

© www.soinside.com 2019 - 2024. All rights reserved.