Scala:在数组中移动元素

时间:2016-12-26 14:58:27

标签: arrays scala

我已经习惯了Scala中的各种数据结构,并且我注意到这个函数(设计示例),它应该将可变数组中的每个字符向右移动一个,对阵列没有影响:

  def shiftRight(str: String): Array[Char] = {
    val chars = str.toCharArray
    for(i <- chars.length - 1 until 0) chars(i) = chars(i - 1)
    chars
  }
  println(shiftRight("ABCD").mkString)

产生结果

ABCD

不是预期的

AABC

1 个答案:

答案 0 :(得分:4)

范围的默认步长为1。请参阅课程Range here并隐含地将您带到here 而不是

for(i <- chars.length - 1 until 0)...

你需要:

for(i <- chars.length - 1 until 0 by -1)...