【发布时间】:2016-01-22 09:06:00
【问题描述】:
我正在尝试使用 inertContentsOf 循环查找所有“\”字符并在其前面插入另一个“\”字符。问题是如果我需要插入的字符,我并不总是知道索引。
例如,我知道我想在索引 3 处插入“\”:
myString.insertContentsOf("\\".characters, at: myString.startIndex.advancedBy(3))
在不知道索引的情况下如何执行此操作? 我已经尝试了以下 for 循环,但没有任何运气。
for words in inputArray {
for char in words {
if char == "\\" {
words.insertContentsOf("\\".characters, at: char)
}
}
}
at: char 对我大喊大叫,因为我试图将字符转换为索引,我得到了但不知道如何修复它。
编辑:由于某种原因,当我尝试将其放入函数 inputArray.map 时不会被调用。
func GenerateString(inputArray:[String])->String {
inputArray.map {
$0.stringByReplacingOccurrencesOfString("\\", withString: "\\\\")
}
let joiner = "|"
let joinerString = inputArray.joinWithSeparator(joiner)
return ("Result: \(joinerString)")
}
let example = ["hello", "world", "c:\Program File\Example"]
GenerateString(example)
结果:
"Hello|world|c:\Program File\Example"
【问题讨论】:
-
你的输入字符串是什么?你想要什么输出?
-
输入:“hello”、“world”、“c\Program Files\Example”。输出:“hello world c\\Program Files\\Example”。
-
我看到你用
map编辑你的问题,小心map返回一个新数组,不要更改当前数组如果你不保留返回数组,编译器可以删除这个无用的代码