Flo*_*lin 2 string binary scala
我有一个初始字符串(二进制)看起来像这样:
val mask = "00000000000000000000000000000000" 长度32
另外,我有一个位置列表i(0 <= i <= 31),我希望掩码的值为1.
例如,List(0,12,30,4)应该给出以下结果:
mask = "10001000000010000000000000000010"
如何在scala中有效地执行此操作?
谢谢
一个天真的方法是折叠零元素'掩码'的位置,并连续更新给定位置的字符:
List(0,12,30,4).foldLeft(mask)((s, i) => s.updated(i, '1'))
Run Code Online (Sandbox Code Playgroud)
- 丹尼尔