小编Tre*_*vor的帖子

XML Creation - 错误:重载方法构造函数UnprefixedAttribute和备选方案

scala> val count = 7
count: Int = 7
Run Code Online (Sandbox Code Playgroud)

将它放入XML属性会产生错误:

scala> val x = <element count={count}/>
<console>:8: error: overloaded method constructor UnprefixedAttribute with alternatives:
  (key: String,value: Option[Seq[scala.xml.Node]],next: scala.xml.MetaData)scala.xml.UnprefixedAttribute <and>
  (key: String,value: String,next: scala.xml.MetaData)scala.xml.UnprefixedAttribute <and>
  (key: String,value: Seq[scala.xml.Node],next1: scala.xml.MetaData)scala.xml.UnprefixedAttribute
 cannot be applied to (java.lang.String, Int, scala.xml.MetaData)
       val x = <element count={count}/>
Run Code Online (Sandbox Code Playgroud)

xml scala

13
推荐指数
1
解决办法
2789
查看次数

从Scala方式读取同一行的多个输入

我试图用来readInt()从同一行读取两个整数,但这不是它的工作原理.

val x = readInt()
val y = readInt()
Run Code Online (Sandbox Code Playgroud)

输入1 727我在运行时得到以下异常:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1 727"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Integer.parseInt(Integer.java:527)
    at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:231)
    at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
    at scala.Console$.readInt(Console.scala:356)
    at scala.Predef$.readInt(Predef.scala:201)
    at Main$$anonfun$main$1.apply$mcVI$sp(Main.scala:11)
    at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:75)
    at Main$.main(Main.scala:10)
    at Main.main(Main.scala)
Run Code Online (Sandbox Code Playgroud)

我通过使用程序工作,readf但对我来说似乎很尴尬和丑陋:

  val (x,y) = readf2("{0,number} {1,number}")
  val a = x.asInstanceOf[Int]
  val b = y.asInstanceOf[Int]
  println(function(a,b))
Run Code Online (Sandbox Code Playgroud)

有人建议我只使用Java的Scanner类,(Scanner.nextInt())但是在Scala中有一个很好的惯用方法吗?

编辑:我的解决方案遵循范例的例子:

val Array(a,b) = readLine().split(" ").map(_.toInt)
Run Code Online (Sandbox Code Playgroud)

后续问题:如果字符串中有多种类型,您将如何提取它?(说一个单词,一个int和一个百分比作为Double)

string parsing scala input

9
推荐指数
2
解决办法
5374
查看次数

折叠选项列表以查找第一个或最后一个

我正在尝试折叠选项列表,以便返回第一个(或最后一个)某些值或如果没有任何某些值则返回None.

scala> val opts = List(None, Some(1), None, Some(2), None)
opts: List[Option[Int]] = List(None, Some(1), None, Some(2), None)

scala> opts foldLeft(None)((a,io) => a match { case None => io; case Some(i) =>
a})
<console>:9: error: object None does not take parameters
              opts foldLeft(None)((a,io) => a match { case None => io; case Some
(i) => a})
                                 ^
Run Code Online (Sandbox Code Playgroud)

不知道我做错了什么.也许有一种方法可以使用更高阶函数更简单地做到这一点,但这里没有任何东西引起了我的注意.

scala folding

7
推荐指数
2
解决办法
4003
查看次数

标签 统计

scala ×3

folding ×1

input ×1

parsing ×1

string ×1

xml ×1