我试图编写一个带区域的函数(来自标记位置和光标位置)并替换所有字符实例' X'与角色' Y'。
例如,用户输入如下:
subChar('g', 'x')
我知道如何获得该地区(我认为),这只是让我困惑的替代品。我在这里看过类似的问题,但我似乎无法理解它。
另外,我可以简单地将该函数应用于该区域,还是需要获取该区域并执行类似toString()的操作,然后应用其余的语法?
这是我到目前为止所做的:
def subChar(s: Char, t: Char) {
var region = (lwr until upr)
region.filterNot('x' == 'y')
}
如果有人有任何指示我会非常感激!
答案 0 :(得分:0)
好吧,为了测试它,我需要lwr和upr以及一个字符串来操作。
scala> def subChar (input: String, s: Char, t: Char, lwr: Int, upr: Int): String =
| input.zipWithIndex.map { case (c, i) => if (i >= lwr && i < upr && c == s) t else c}.mkString ("")
subChar: (input: String, s: Char, t: Char, lwr: Int, upr: Int)String
scala> subChar ("dodadodado", 'd', 'l', 1, 5)
res39: String = dolalodado
如果在外部上下文中给出了该数据 - 作为实例变量或其他内容,则不需要它们作为参数。
但请注意,返回结果的方法需要'='。
另一个不变的主题是,从哪里开始计算索引以及间隔的哪个部分是包容性的/独占的,所以要测试它并根据你的需要进行调整。