小编elm*_*elm的帖子

使用正则表达式进行Scala数组模式匹配

如何使用正则表达式对数组中的第一个字符串元素进行模式匹配?

例如,考虑一下

Array("col",1) match {
  case Array("""col | row""", n, _*) => n
  case _ => 0
}
Run Code Online (Sandbox Code Playgroud)

0虽然期望的结果是1,但它可以提供.

非常感谢.

arrays string scala pattern-matching

5
推荐指数
1
解决办法
820
查看次数

Scala案例类参数从数组实例化

考虑一个可能有大量成员的案例类; 为了说明这个案例假设两个论点,如

case class C(s1: String, s2: String)
Run Code Online (Sandbox Code Playgroud)

因此假设一个大小至少为那么多参数的数组,

val a = Array("a1", "a2")
Run Code Online (Sandbox Code Playgroud)

然后

scala> C(a(0), a(1))
res9: C = c(a1,a2)
Run Code Online (Sandbox Code Playgroud)

但是,是否存在一种案例类实例化方法,其中不需要为数组中的每个元素引用任何(可能是大量)预定义类成员?

arrays scala class instantiation shapeless

5
推荐指数
2
解决办法
5340
查看次数

unicode转义中的Scala原始字符串错误

在Scala字符串中需要包含这个文字的逐字:\usepackage{x}.因此,期望的是

val s = """ ... \usepackage{X} ... """

println(s)
... \usepackage{X} ...
Run Code Online (Sandbox Code Playgroud)

到目前为止的尝试包括,

scala> """\usepackage{X}"""
<console>:1: error: error in unicode escape
       """\usepackage{X}"""
            ^

scala> raw"""\usepackage{X}"""
<console>:1: error: error in unicode escape
       raw"""\usepackage{X}"""
               ^
Run Code Online (Sandbox Code Playgroud)

单双引号字符串也证明不成功.

http://docs.scala-lang.org/overviews/core/string-interpolation.html之后,一个工作示例包括

scala> raw"a\nb"
res1: String = a\nb
Run Code Online (Sandbox Code Playgroud)

这不包括unicode案件.

string unicode scala unicode-escapes

5
推荐指数
1
解决办法
2313
查看次数

Scala布尔值到字符串转换

转换true: Boolean为String的一种方法是

scala> true.toString
res: String = true
Run Code Online (Sandbox Code Playgroud)

然而,

scala> true.asInstanceOf[String]
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
Run Code Online (Sandbox Code Playgroud)

为什么后者尝试失败?

非常感谢

casting scala type-conversion

5
推荐指数
1
解决办法
6767
查看次数

如何将csv文件读入scala中的数组数组

我正在尝试读取一个 csv 文件并将其作为双精度数组 ( Array[Array[Double]])的数组返回。如何逐行读取文件并立即打印出来很清楚,但不知道如何将其存储在二维数组中。

def readCSV() : Array[Array[Double]] = {
    val bufferedSource = io.Source.fromFile("/testData.csv")
    var matrix :Array[Array[Double]] = null
    for (line <- bufferedSource.getLines) {
        val cols = line.split(",").map(_.trim)
        matrix = matrix :+ cols
    }
    bufferedSource.close
    return matrix
}
Run Code Online (Sandbox Code Playgroud)

有一些类型问题,然后意识到我没有做我认为我在做的事情。任何将我指向正确轨道的帮助将不胜感激。

csv arrays scala matrix multidimensional-array

5
推荐指数
1
解决办法
4716
查看次数

Scala:向序列添加项或有条件地合并序列

我需要Seq根据条件添加项目.

我唯一能做的就是:

if(condition){
    part1 ++ part2 ++ Seq(newItem)
}
else {
  part1 ++ part2
}
Run Code Online (Sandbox Code Playgroud)

part1并且part2Seq[String].它有效,但有很多重复的代码.有什么方法可以做得更好吗?谢谢

scala seq scala-collections

5
推荐指数
1
解决办法
1756
查看次数

在Scala中,将函数应用于不可变映射中某些键的值

让一个不可变的地图

val m = (0 to 3).map {x => (x,x*10) }.toMap
m: scala.collection.immutable.Map[Int,Int] = Map(0 -> 0, 1 -> 10, 2 -> 20, 3 -> 30)
Run Code Online (Sandbox Code Playgroud)

一系列感兴趣的钥匙

val k = Set(0,2)
Run Code Online (Sandbox Code Playgroud)

和一个功能

def f(i:Int) = i + 1
Run Code Online (Sandbox Code Playgroud)

如何应用于f感兴趣的键映射的映射中的值,以便生成映射

Map(0 -> 1, 1 -> 10, 2 -> 21, 3 -> 30)
Run Code Online (Sandbox Code Playgroud)

collections scala

4
推荐指数
1
解决办法
1579
查看次数

将元素移动到Scala中列表的前面

我想知道是否有办法在列表中找到一个元素并将其移动到Scala列表的前面?有没有什么简单的方法可以做到这一点,除了迭代列表,然后删除该元素,然后将其预先挂起到列表的前面?

scala data-structures scala-collections

4
推荐指数
1
解决办法
1110
查看次数

在Scala中对Array of Arrays执行元素添加的惯用方法是什么?

我有一个Array[Array[Float]]保证所有内部数组长度相同的.我想在所有内部数组上执行元素加法.

让我用一个具体的例子说明这一点.假设我的Array包含三个由七个Floats组成的Arrays,其值如下:

Array[Array[Float]] = Array(
                          Array(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0), 
                          Array(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 
                          Array(0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0)
                      )
Run Code Online (Sandbox Code Playgroud)

现在我想将其转换为大小为7的数组,其中第n个元素是我输入中第n个元素的总和Array.对于我的示例输入,输出将是:

Array[Float] = Array(1.0, 3.0, 3.0, 5.0, 5.0, 7.0, 7.0)
Run Code Online (Sandbox Code Playgroud)

为了在两个Array[Float]人身上执行此操作,我知道我可以压缩它们然后添加带有地图的元素.然而,我仍然在努力寻找能够将任意数量Array[Float]的元素相加的更通用的解决方案.

任何帮助将非常感激!

scala scala-collections

4
推荐指数
1
解决办法
1447
查看次数

如何将Java依赖项添加到Scala项目的sbt文件中

我有一个使用Apache NiFi接收器的火花流Scala项目.这些项目在Eclipse/Scala IDE下运行良好,现在我想将其打包以进行部署.当我把它添加为

libraryDependencies += "org.apache.nifi" %% "nifi-spark-receiver" % "0.3.0"
Run Code Online (Sandbox Code Playgroud)

sbt假设它是一个Scala库并试图解决它.

我如何将NiFi接收器及其所有依赖项添加到项目的SBT文件中?

此外,是否有可能将依赖项pint到本地目录而不是sbt试图解决?

提前致谢.

这是我的sbt文件内容:

name := "NiFi Spark Test"

version := "1.0"

scalaVersion := "2.10.5"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.2" % "provided"
libraryDependencies += "org.apache.nifi" %% "nifi-spark-receiver" % "0.3.0"
Run Code Online (Sandbox Code Playgroud)

scala sbt scala-ide spark-streaming apache-nifi

4
推荐指数
1
解决办法
588
查看次数