首页 > 解决方案 > Swift,删除删除所有字符并仅保留数字

问题描述

我在 swift 中有一个字符串,如下所示:

C/I               MFM    1110

是否可以只获得号码?我需要删除所有字母并只保留数字。

谢谢

标签: swiftstring

解决方案


有几种方法,包括正则表达式,但假设您的示例代表格式,空格分隔的文本列,您总是想要最后一列,一个简单的方法是

guard let numSubstr = s.split(whereSeparator: { $0.isWhitespace }).last else {
    fatalError("No columns!")
}

let numStr = String(numSubstr)

您要从中提取最后一个非空白的位置s在哪里。StringSubstring

如果您知道该行中只有一个数字(并且该数字是唯一的数字字符所在的位置),您还可以执行以下操作:

let numStr = s.filter { $0.isNumber }

对于更复杂或不同的行格式,您可能需要使用正则表达式或自己逐个字符地显式解析它。


推荐阅读