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