格式化后从String中删除空格

时间:2018-03-05 14:50:41

标签: swift

我正在使用输入类型编号从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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

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

然后将newString转换为Int

答案 1 :(得分:0)

解决了

我正在使用的字符串末尾有一个额外的空格。例如:@B = ( 'test', \@A ); ,所以我使用的格式化程序路径是错误的。