Ios 替换索引处的字符串值
我试图在从文本输入中获取的字符串的第一个字符中添加一个remove a,并用另一个字符替换它,但新字符串将替换具有Ios 替换索引处的字符串值,ios,swift,string,Ios,Swift,String,我试图在从文本输入中获取的字符串的第一个字符中添加一个remove a,并用另一个字符替换它,但新字符串将替换具有0的每个值,而不仅仅是初始数字。下面是我尝试过的代码 let swiftyString = phoneNumberField.text?.replacingOccurrences(of: "0", with: "44") print("STRING \(swiftyString!)") 你可以试试 let res = "44\(swiftyString.dropF
0
的每个值,而不仅仅是初始数字。下面是我尝试过的代码
let swiftyString = phoneNumberField.text?.replacingOccurrences(of: "0", with: "44")
print("STRING \(swiftyString!)")
你可以试试
let res = "44\(swiftyString.dropFirst())"
或创造
extension String {
mutating func replaceFirst(_ str:String) {
self = str + self.dropFirst()
}
}
如果要替换第一个字符:
guard let input = phoneNumberField.text as? String{
return
}
let outPut = "44" + String(input.dropFirst())
使用insert(u,at:)
而不是replacingOccurrences
if var phone = phoneNumberField.text?.dropFirst() {
phone.insert("44", at: phone.startIndex)
}
替换第N个字符:
extension String {
func replace(_ with: String, at index: Int) -> String {
var modifiedString = String()
for (i, char) in self.enumerated() {
modifiedString += String((i == index) ? with : String(char))
}
return modifiedString
}
}
let string = "wqrtyry"
let dd = string.replace("R", at: 2)
print(dd)
使用:
extension String {
func replace(_ with: String, at index: Int) -> String {
var modifiedString = String()
for (i, char) in self.enumerated() {
modifiedString += String((i == index) ? with : String(char))
}
return modifiedString
}
}
let string = "wqrtyry"
let dd = string.replace("R", at: 2)
print(dd)
只需使用
正则表达式
选项,前导插入符号(^
)只考虑字符串的开头
let swiftyString = phoneNumberField.text?.replacingOccurrences(of: "^0", with: "44", options: .regularExpression)
或在扩展中替换子范围
extension String {
mutating func replaceLeadingZero(with string: String) {
if hasPrefix("0") { replaceSubrange(...startIndex, with: string) }
}
}
let swiftyString = phoneNumberField.text?.replaceLeadingZero(with: "44")
如果你觉得有点冒险,那么你可以使用下面的代码
var string = "05942208638"
var ranges: [Range<String.Index>] = []
var start = string.startIndex
while start < string.endIndex,
let range = string.range(of: "0", range: start..<string.endIndex) {
ranges.append(range)
start = range.upperBound
if ranges.count == 1 { break }
}
for range in ranges.reversed() {
string.replaceSubrange(range, with: "44")
}
print(string) //prints 445942208638
var string=“05942208638”
变量范围:[范围]=[]
var start=string.startIndex
当start