我正在使用输入类型编号从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
。
任何的想法 ?
myString.trimmingCharacters(in: .whitespaces)
将删除字符串开头和结尾的空格,因此您需要通过以下代码删除字符之间的所有空格:
let newString = myString.replacingOccurrences(of: " ", with: "")
然后将newString
转换为Int
解决了 :
我正在使用的字符串末尾有一个额外的空格。例如:"10 000 "
,所以我使用的格式化程序路径是错误的。