这是我目前的代码。我想将一个字符串拆分成两个整数并将它们存入变量。
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相关联。
答案 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
a
和b
是您需要的vaiables。