【问题标题】:Remove white spaces from String after formatting格式化后从字符串中删除空格
【发布时间】:2018-03-05 14:50:41
【问题描述】:

我正在使用输入类型号从UITextField 格式化String: 示例:如果我有“10000”,我将“10000”格式化为“10 000”String

问题:稍后我需要访问此 String 的 Int 值,但在转换时,我遇到了异常,因为 String 的格式不正确,无法转换,因为它包含空格。 (例如:Int("10 000") 不起作用。)

所以我想在转换为Int 之前从String 中删除空格,方法是使用: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) ?? ""
    }
}

我还尝试通过执行以下操作从我的格式化程序中检索原始 NSNumber

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

但结果也是nil

有什么想法吗?

【问题讨论】:

  • 因为formatter 可能与myFormatter 不同,否则工作顺利,输入字符串"10 000" 的整数值为10000 – btw, trimming 只修剪前导和尾随字符。
  • 我正在使用来自 Formatter 扩展的相同内容
  • 然后发布您的真实代码,您实际上按原样使用。
  • 谢谢,您对trimming 的第一个回答为我指明了方向。我需要replacingOccurences(...)删除空格,愚蠢的错误
  • @AnthonyR Formatter.withSeparator.number(from: "10 000")?.intValue 为我打印 "Optional(10000)\n"。您确定您的字符串不包含分组分隔符以外的空格吗?

标签: swift


【解决方案1】:

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

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

然后将newString 转换为Int

【讨论】:

    【解决方案2】:

    已解决

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

    【讨论】:

      【解决方案3】:

      删除前导和尾随空格:

      let myString = "  It Is Wednesday My Dudes! ?  "
      
      myString.trimmingCharacters(in: .whitespaces)
      
      print(myString) //"It Is Wednesday My Dudes! ?"
      

      删除所有空格:

      extension String {
          var whiteSpaceRemoved: String {
              replacingOccurrences(of: " ", with: "")
          }
      }
      
      let myString = "  It Is Wednesday My Dudes! ?  "
      
      print(myString.whiteSpaceRemoved) //"ItIsWednesdayMyDudes!?"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-20
        • 2011-09-21
        • 2020-03-18
        • 2019-01-13
        相关资源
        最近更新 更多