我正在尝试在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)
}
}
}
这段代码是对的吗?
答案 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)