gpt4 book ai didi

ios - Swift - 从字符串中删除空格不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:28 29 4
gpt4 key购买 nike

我正在尝试从字符串中删除空格和一些字符,请检查下面的代码

// giving phoneString = +39 333 3333333
var phoneString = ABMultiValueCopyValueAtIndex(phone, indexPhone).takeRetainedValue() as! String

// Remove spaces from string
phoneString = phoneString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())

// Remove +39 if exist
if phoneString.rangeOfString("+39") != nil{
phoneString = phoneString.stringByReplacingOccurrencesOfString("\0", withString: "+39", options: NSStringCompareOptions.LiteralSearch, range: nil)
}

print(phoneString) // output +39 333 3333333

似乎所有的更改都对我的字符串没有影响,为什么会这样?

编辑@V S

screen

编辑 2:

我尝试将我的字符串转换为 utf 8,检查结果:

43 51 57 194 160 51 51 51 194 160 51 51 51 51 51 51 51

哪里:

43 = +
51 = 3
57 = 9
160 = space
194 = wtf?!? is this?

最佳答案

你想做的是

// your input string
let str = "+39 333 3333333"

let arr = str.characters.split(" ").map(String.init) // ["+39", "333", "3333333"]
// remove country code and reconstruct the rest as one string without whitespaces
let str2 = arr.dropFirst().joinWithSeparator("") // "3333333333"

仅在存在时过滤掉国家代码(如 Eendje 所要求的)

let str = "+39 123 456789"
let arr = str.characters.split(" ").map(String.init)
let str3 = arr.filter { !$0.hasPrefix("+") }.joinWithSeparator("") // "123456789"

更新,基于您的更新。160代表不可破坏的空间。只需修改我代码中的下一行

let arr = str.characters.split{" \u{00A0}".characters.contains($0)}.map(String.init)

"\u{00A0}".characters.contains($0) 表达式,您可以根据需要将字符串扩展到任意多的空白字符。 160 是\u{00A0} 见 details here

Swift 4 更新

String.characters 已弃用。所以现在正确的答案是

// your input string
let str = "+39 333 3333333"

let arr = str.components(separatedBy: .whitespaces) // ["+39", "333", "3333333"]
// remove country code and reconstruct the rest as one string without whitespaces
let str2 = arr.dropFirst().joined() // "3333333333"

关于ios - Swift - 从字符串中删除空格不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35480530/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com