我有一个通用的字符串属性,格式如下:15555555555。我试图在UILabel
中以下列格式显示它:
(555)
555-5555
我希望避免更改UILabel
大小或任何内容以使文本换行,因为它会根据模式显示不同的文本。我尝试过使用NSMutableString
和myString.components(separatedBy:)
等其他内容,但无法让代码生效:
第一种尝试方法:
let phoneNumber = NSMutableString(string: self.phoneNumber)
phoneNumber.remove(at: 0)
phoneNumber.insert("-", at: 6)
phoneNumber.insert(")", at: 3)
phoneNumber.insert("(", at: 0)
let finalString: String = phoneNumberArray.joined()
第二种尝试方法:
var phoneNumberArray = self.phoneNumber.components(separatedBy: “”)
phoneNumber.remove(at: 0)
phoneNumber.insert("-", at: 6)
phoneNumber.insert(")", at: 3)
phoneNumber.insert("(", at: 0)
let finalString: String = phoneNumberArray.joined()
我正在尝试的一切都是错误,我不知道如何将它包装在中间而不是分成两个字符串。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:2)
在查找[String]
时,请注意数组类型,而不是[Character]
。
我使用下面的代码输入了一个示例。这将获取电话号码并使每个数字成为数组中的String
元素。这样,您就可以插入和删除String
个字符。此外,您实际上只需在\n
中使用换行String
即可。这个转义序列意味着新行,所以它之后的所有内容都将“换行”:
var phoneNumberArray : [String] = self.phoneNumber.characters.map{String($0)}
phoneNumberArray.remove(at:0)
phoneNumberArray.insert("-", at: 6)
phoneNumberArray.insert("\n", at: 3)
phoneNumberArray.insert(")", at: 3)
phoneNumberArray.insert("(", at: 0)
let finalString: String = phoneNumberArray.joined()
此代码未经过测试但应该可以使用。