这段代码对吗?

时间:2011-02-20 04:11:12

标签: scala

我正在尝试在scala上编写一个hangman代码。所以,我编写了以下代码来创建一个数组长度由args确定的数组。例如,存在一个数组B = Array(“scala”,“python”,“C ++”,“Pascal”,“java”),并且我想从这个数组中创建一个只有长度为6的元素的数组。以下是我写的代码:

import scala.io.Source
import java.util.Random
val fname = args(0)
val listOfwords = Source.fromFile(fname).getLines.toArray
val temp = Array("a")
val a = args(1).toInt

def new_array{
for (i <- 0 until listOfwords.length-1){
    var length = listOfwords(i).length.toInt
    if (length == a) {
        temp :+ listOfwords(i)
        }
    }
}

这段代码是对的吗?

1 个答案:

答案 0 :(得分:1)

这利用了新的Scala 2.8系列......应该做你想做的事。

import scala.io.Source
import java.util.Random

val fname = args(0)
val listOfwords = Source.fromFile(fname).getLines.toArray
val a = args(1).toInt

val new_array = listOfwords.filter(elem => elem.length == a)

// or you can use this
val new_array = listOfwords.filter(_.length == a)