Scala:将字符串拆分为两个整数

时间:2016-09-23 09:20:42

标签: scala split

这是我目前的代码。我想将一个字符串拆分成两个整数并将它们存入变量。

val line = "1 2"
var a = 0
var b = 0
val c = line.split(" ") match { case Array(x,y) => (x.toInt, y.toInt) }
a = c._1
b = c._2

有没有办法在Scala中做这样的事情?这更加紧凑。

(a,b) = line.split(" ") match { case Array(x,y) => (x.toInt, y.toInt) }

表达式line.split(“”)匹配{case Array(x,y)=> (x.toInt,y.toInt)}返回一个整数的tupple所以我认为直接将两个整数与变量a和b相关联。

5 个答案:

答案 0 :(得分:8)

这更紧凑,更干净

val Array(a, b, _*) = line split "\\s+" map(_ toInt)

即使字符串中有更多数字

,以下代码也能正常工作
val Array(a,b) = line split("\\s+") map(_.toInt)

dot optional

val Array(a,b) = line split "\\s+" map(_ toInt)

怎么样?

val Array(a, ' ', b) = "1 2".toCharArray

对于更具体的情况,请执行此操作

scala> val line = "1 2"
line: String = "1 2"
scala> val Array(a,b) = line.split("\\s+").map(_.toInt)
a: Int = 1
b: Int = 2

scala> val line = "1 2 3  4"
line: String = "1 2 3  4"
scala> val Array(a, b, _*) = line split "\\s+" map(_ toInt)
a: Int = 1
b: Int = 2

scala> val Array(a, ' ', b) = "1 2".toCharArray
a: Char = '1'
b: Char = '2'

Scala REPL

{{1}}

答案 1 :(得分:1)

val List(a, b) = line.split(" ").map(_.toInt).toList

答案 2 :(得分:0)

类似的东西:

val (d, e) = line.split(" ") match { case Array(x,y) => (x.toInt, y.toInt) }

答案 3 :(得分:0)

您可以使用AsyncStorage.setItem('baru', 'this is new dude!!'); var b = AsyncStorage.getItem('baru'); console.log(b); 类来封装数据点:

case

答案 4 :(得分:-1)

val str = "1 2"

val res = str.split(" ") 
val a = res.head.toInt 
val b = res.last.toInt

ab是您需要的vaiables。