如何以特定格式将字符插入字符串?

时间:2016-10-08 01:14:53

标签: ios swift uilabel

我有一个通用的字符串属性,格式如下:15555555555。我试图在UILabel中以下列格式显示它:

  

(555)
555-5555

我希望避免更改UILabel大小或任何内容以使文本换行,因为它会根据模式显示不同的文本。我尝试过使用NSMutableStringmyString.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()

我正在尝试的一切都是错误,我不知道如何将它包装在中间而不是分成两个字符串。任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 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()

此代码未经过测试但应该可以使用。