ios - 替换字符串中除出现一次以外的所有字符

标签 ios swift string

由于用户错误,我有一串数字可能包含一个以上的小数点。像这样的东西:

"2.3333.555.6664438"

我希望能够删除字符串中除一个小数点以外的所有小数点(最好是第一个或最后一个):

"2.33335556664438" 

"23333555.6664438"

实现此目标的最佳方法是什么?

最佳答案

以句号分隔成组,并连接起来 除了第一组。示例( swift 3):

var string = "2.3333.555.6664438"
let groups = string.components(separatedBy: ".")
if groups.count > 1 {
    string = groups[0] + "." + groups.dropFirst().joined()
}
print(string) // 2.33335556664438

或者:找到第一个句点字符并删除所有后续字符 发生次数:

var string = "2.3333.555.6664438"
if let r = string.range(of: ".") {
    string = string.substring(to: r.upperBound)
        + string.substring(from: r.upperBound).replacingOccurrences(of: ".", with: "")

}
print(string) // 2.33335556664438

(但请注意,小数点分隔符取决于语言环境,不一定是句点字符。例如,它在德国是逗号。)

关于ios - 替换字符串中除出现一次以外的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40248367/

相关文章:

c++ - 使用字符串流解析字符串时,它会提取换行符

ios - 管理默认 "share"iOS 对话框上的按钮

ios - 在iOS中,如何检测UITableview中的单元格是否正在被滑动?

swift - 字符串扩展,添加方法 "add"并采用 Int 作为没有标签的参数,并返回可选的 Int

ios - Swift - 编码 URL

c++ - 用c++解析一个文件并忽略一些字符

android - React Native 中的全局变量/常量

objective-c - 当用户回答 "App wants to use location services"时发送请求

swift - LiDAR 和 RealityKit – 为扫描模型捕捉真实世界的纹理

regex - 围绕外部定界符拆分字符串,尊重字符组