Scala:在String中的位置i替换char

Flo*_*lin 2 string binary scala

我有一个初始字符串(二进制)看起来像这样:

val mask = "00000000000000000000000000000000" 长度32

另外,我有一个位置列表i(0 <= i <= 31),我希望掩码的值为1.

例如,List(0,12,30,4)应该给出以下结果:

mask = "10001000000010000000000000000010"

如何在scala中有效地执行此操作?

谢谢

Dan*_*ich 7

一个天真的方法是折叠零元素'掩码'的位置,并连续更新给定位置的字符:

List(0,12,30,4).foldLeft(mask)((s, i) => s.updated(i, '1'))
Run Code Online (Sandbox Code Playgroud)

- 丹尼尔