Stringbuilder(Scala)-用另一个字符替换一个字符的所有实例

Stringbuilder(Scala)-用另一个字符替换一个字符的所有实例,scala,stringbuilder,Scala,Stringbuilder,我正在尝试编写一个函数,它获取一个区域(从标记位置和光标位置),并用字符“Y”替换字符“X”的所有实例 例如,用户输入如下: subChar('g', 'x') 我知道如何得到这个区域(我想),只是替换让我困惑。我在这里也看过类似的问题,但我似乎仍然无法理解 另外,我可以简单地将函数应用于区域,还是需要获取区域并执行类似于toString()的操作,然后应用其余语法 以下是我到目前为止的情况: def subChar(s: Char, t: Char) { var region = (lw

我正在尝试编写一个函数,它获取一个区域(从标记位置和光标位置),并用字符“Y”替换字符“X”的所有实例

例如,用户输入如下:

subChar('g', 'x')
我知道如何得到这个区域(我想),只是替换让我困惑。我在这里也看过类似的问题,但我似乎仍然无法理解

另外,我可以简单地将函数应用于区域,还是需要获取区域并执行类似于toString()的操作,然后应用其余语法

以下是我到目前为止的情况:

def subChar(s: Char, t: Char) {
  var region = (lwr until upr)
  region.filterNot('x' == 'y')
}

如果有人有任何建议,我将不胜感激

好吧,为了测试它,我需要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
scala>def subChar(输入:String,s:Char,t:Char,lwr:Int,upr:Int):String=
|input.zipWithIndex.map{case(c,i)=>if(i>=lwr&&i亚喀尔(“多达多达多”、“d”、“l”、1、5)
res39:String=dolalodado
如果这些数据是在外部上下文中给出的——作为实例变量或其他什么,则不需要它们作为参数

但是请注意,返回结果的方法需要一个“=”

另一个不变的主题是,从何处计算索引以及间隔的哪一部分是包含的/独占的,所以请测试它并根据您的需要进行调整