谁能解释一下这是什么意思 scala>val sample=“12013-07-25 00:00:00.011599,关闭” 样本:字符串=12013-07-25 00:00:00.011599,已关闭 scala>sample.split(“,”)(1.split(“”) res15:Array[String]=数组(2013-07-2500:00:00.0) scala>sample.split(“,”)1.split(“”)0.split(“”).mkString(“”.toInt res16:Int=20130725 scala>sample.split(“,”)(1)split(“”) res17:Array[String]=数组(2013-07-2500:00:00.0) scala>sample.split(“”),“”(1)split(“”)(0).split(“”).mkString(“”.toInt :28:错误:值拆分不是Char的成员 sample.split(“”),“”(1)split(“”)(0).split(“”).mkString(“”.toInt ^

谁能解释一下这是什么意思 scala>val sample=“12013-07-25 00:00:00.011599,关闭” 样本:字符串=12013-07-25 00:00:00.011599,已关闭 scala>sample.split(“,”)(1.split(“”) res15:Array[String]=数组(2013-07-2500:00:00.0) scala>sample.split(“,”)1.split(“”)0.split(“”).mkString(“”.toInt res16:Int=20130725 scala>sample.split(“,”)(1)split(“”) res17:Array[String]=数组(2013-07-2500:00:00.0) scala>sample.split(“”),“”(1)split(“”)(0).split(“”).mkString(“”.toInt :28:错误:值拆分不是Char的成员 sample.split(“”),“”(1)split(“”)(0).split(“”).mkString(“”.toInt ^,scala,Scala,这里漏掉的点只适用于一种情况… 我输入了一个错误,我注意到了,但我很好奇是否有解释。您忘记了(1) sample.split(“,”)(1).split(“”)(0).split(“-”).mkString(“”).toInt发生的事情是,如果没有点,方法将应用于错误的元素 scala> val sample ="1,2013-07-25 00:00:00.0,11599,CLOSED" sample: String = 1,2013-07-25 00:00:00.0,11599,CLOS

这里漏掉的点只适用于一种情况…
我输入了一个错误,我注意到了,但我很好奇是否有解释。

您忘记了
(1)


sample.split(“,”)(1).split(“”)(0).split(“-”).mkString(“”).toInt

发生的事情是,如果没有点,方法将应用于错误的元素

scala> val sample ="1,2013-07-25 00:00:00.0,11599,CLOSED"
sample: String = 1,2013-07-25 00:00:00.0,11599,CLOSED

scala> sample.split(",")(1).split(" ")
res15: Array[String] = Array(2013-07-25, 00:00:00.0)

scala> sample.split(",")(1).split(" ")(0).split("-").mkString("").toInt
res16: Int = 20130725

scala> sample.split(",")(1)split(" ")
res17: Array[String] = Array(2013-07-25, 00:00:00.0)

scala> sample.split(",")(1)split(" ")(0).split("-").mkString("").toInt
<console>:28: error: value split is not a member of Char
              sample.split(",")(1)split(" ")(0).split("-").mkString("").toInt
                                            ^
接下来的所有内容都通过
apply()
应用到传递给
split()
字符串
参数


当您在
sample.split(,“”(1)split(“”)(0)
中省略点时,这实际上等于
sample.split(,“”(1)split(“”)(0)
,因为当您省略点时,您还可以省略括号

对于
(“”)(0)
其中有一个隐式转换,将
字符串
转换为
字符串操作
:,它可以是字符集合
索引化的[Char,Repr]
,因此
(“”)(0)
将返回
字符串集合的第一个字符


因此
sample.split(“,”)(1)split(“”)(0)
它也等于
sample.split(“,”)(1)split“”
,因为上面的隐式转换。所以
sample.split(“,”)split“”
类型仍然是
Array[String]
而不是
String
类型。当然,
split
Array
类型中不起作用。

嘿,我知道我在下面提到了它,但我想知道它的解释。读得太快了。我删除了批评我答案的部分。:)谢谢你指出这一点。:)
sample.split(",")(1)split(" ")
     // missing dot ^  becomes the same as
sample.split(",")(1) split " "
sample.split(",")(1) split " "(0) //the 0 index is the 1st Char of the String

sample.split(",")(1) split " "(0).split("-") //can't split a Char