我有一個字符串,它看起來像以下:斯卡拉轉逗號分隔字符串數組
"1,100,53,5000,23,3,3,4,5,5"
我想簡單地把它變成不同的整數元素的數組。東西會看起來像:
Array(1, 100, 53, 5000, 23, 3, 4, 5)
有Scala中的一個String
方法,將幫助這一點?
我有一個字符串,它看起來像以下:斯卡拉轉逗號分隔字符串數組
"1,100,53,5000,23,3,3,4,5,5"
我想簡單地把它變成不同的整數元素的數組。東西會看起來像:
Array(1, 100, 53, 5000, 23, 3, 4, 5)
有Scala中的一個String
方法,將幫助這一點?
scala> "1,100,53,5000,23,3,3,4,5,5".split(",").map(_.toInt).distinct
res1: Array[Int] = Array(1, 100, 53, 5000, 23, 3, 4, 5)
顯然,如果數組中的某個值不是整數,那麼會引發異常。
編輯:沒有看到「唯一數字」部分,修復了我的答案。
附加類型檢查的字符串被解析的爲INT:
package load.data
object SplitArray {
def splitArrayintoString(s: String): Set[Int] =
{
val strArray = s.split(",")
strArray filter isParseAbleAsInt map (_.toInt) toSet
}
private def isParseAbleAsInt(str: String): Boolean =
str.forall(Character.isDigit(_))
}
另一個版本,與非解析的價值觀很好地涉及,只是忽略它們。
scala> "1,100,53,5000,will-not-fail,23,3,3,4,5,5".split(",").flatMap(maybeInt =>
scala.util.Try(maybeInt.toInt).toOption).distinct
res2: Array[Int] = Array(1, 100, 53, 5000, 23, 3, 4, 5)