如何在Swift中的字符串中的特定索引处添加字符

 我爱麦兜李 发布于 2022-12-09 19:43

我在Swift中有这样的字符串:

var stringts:String = "3022513240"

如果我想将它更改为字符串,如下所示:"(302)-251-3240",我想在索引0处添加括号,我该怎么做?

在Objective-C中,它是这样完成的:

 NSMutableString *stringts = "3022513240";
 [stringts insertString:@"(" atIndex:0];

怎么在Swift中做到这一点?

6 个回答
  • 也许Swift 4的这个扩展会有所帮助:

    extension String {
      mutating func insert(string:String,ind:Int) {
        self.insert(contentsOf: string, at:self.index(self.startIndex, offsetBy: ind) )
      }
    }
    

    2022-12-11 02:07 回答
  • var phone ="+ 9945555555"

    var indx = phone.index(phone.startIndex,offsetBy:4)

    phone.insert(" - ",at:indx)

    index = phone.index(phone.startIndex,offsetBy:7)

    phone.insert(" - ",at:indx)

    // + 994-55-55555

    2022-12-11 02:09 回答
  • 如果你宣布它NSMutableString是可能的,你可以这样做:

    let str: NSMutableString = "3022513240)"
    str.insert("(", at: 0)
    print(str)
    

    输出是:

    (3022513240)
    

    编辑:

    如果你想在开始时添加:

    var str = "3022513240)"
    str.insert("(", at: str.startIndex)
    

    如果要在最后一个索引处添加字符:

    str.insert("(", at: str.endIndex)
    

    如果你想添加特定的索引:

    str.insert("(", at: str.index(str.startIndex, offsetBy: 2))
    

    2022-12-11 02:56 回答
  • 斯威夫特3

    使用本机Swift方法:

    var welcome = "hello"
    
    welcome.insert("!", at: welcome.endIndex) // prints hello!
    welcome.insert("!", at: welcome.startIndex) // prints !hello
    welcome.insert("!", at: welcome.index(before: welcome.endIndex)) // prints hell!o
    welcome.insert("!", at: welcome.index(after: welcome.startIndex)) // prints h!ello
    welcome.insert("!", at: welcome.index(welcome.startIndex, offsetBy: 3)) // prints hel!lo
    

    如果您有兴趣了解有关字符串和性能的更多信息,请查看下面的@Thomas Deniau的答案.

    2022-12-11 02:58 回答
  • var myString = "hell"
    let index = 4
    let character = "o" as Character
    
    myString.insert(
        character, at:
        myString.index(myString.startIndex, offsetBy: index)
    )
    
    print(myString) // "hello"
    

    小心:确保index大于或等于字符串的大小,否则你会崩溃.

    2022-12-11 03:09 回答
  • 将10位电话号码显示为美国号码格式(###)###-#### SWIFT 3

    func arrangeUSFormat(strPhone : String)-> String {
        var strUpdated = strPhone
        if strPhone.characters.count == 10 {
            strUpdated.insert("(", at: strUpdated.startIndex)
            strUpdated.insert(")", at: strUpdated.index(strUpdated.startIndex, offsetBy: 4))
            strUpdated.insert(" ", at: strUpdated.index(strUpdated.startIndex, offsetBy: 5))
            strUpdated.insert("-", at: strUpdated.index(strUpdated.startIndex, offsetBy: 9))
        }
        return strUpdated
    }
    

    2022-12-11 03:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有