Scala如何创建文件到数组
我有一个文件如下Scala如何创建文件到数组,scala,Scala,我有一个文件如下 AB*xyz*1234~ CD*mny*769~ MN*bvd*2345~ AB*zar*987~ 在这里,我想使用(*)分割数据,并且行始终以~ 代码 val bufferedSource=Source.fromFile(sample.txt) 变量数组=数组[字符串]() 对于(line您只需 Source.fromFile(filename).getLines().map(line => line.split("\\*").head).toArray //res0
AB*xyz*1234~
CD*mny*769~
MN*bvd*2345~
AB*zar*987~
在这里,我想使用(*)分割数据,并且行始终以~
代码
val bufferedSource=Source.fromFile(sample.txt)
变量数组=数组[字符串]()
对于(line您只需
Source.fromFile(filename).getLines().map(line => line.split("\\*").head).toArray
//res0: Array[String] = Array(AB, CD, MN, AB)
你可以简单地做
Source.fromFile(filename).getLines().map(line => line.split("\\*").head).toArray
//res0: Array[String] = Array(AB, CD, MN, AB)
通过映射文件中的行并选择要保留的字符串部分,可以更好地实现这一点:
val array =
Source.fromFile(sample.txt) // Open the file
.getLines() // get each line
.toArray // as an array
.map(s => s.split("\\*").head) // Then select just the first part
// of the line, split by * characters
通过映射文件中的行并选择要保留的字符串部分,可以更好地实现这一点:
val array =
Source.fromFile(sample.txt) // Open the file
.getLines() // get each line
.toArray // as an array
.map(s => s.split("\\*").head) // Then select just the first part
// of the line, split by * characters
您还可以使用collect
获取所需内容
val s = Source.fromFile("fileName").getLines().collect{
case e => e.split("\\*").apply(0)
}.toArray
//s: Array[String] = Array(AB, CD, MN, AB)
您还可以使用collect
获取所需内容
val s = Source.fromFile("fileName").getLines().collect{
case e => e.split("\\*").apply(0)
}.toArray
//s: Array[String] = Array(AB, CD, MN, AB)
谢谢你的回复。我得到的输出是[Ljava.lang.String;@a92be4f。我将数组转换为列表并得到了预期的输出。这是因为array
s不像list
s那样打印它们的内容。谢谢你的回复。我得到的输出是[Ljava.lang.String;@a92be4f.i将数组转换为列表并获得了预期的输出。这是因为array
s不像list
s那样打印其内容。