【问题标题】:Too much information太多的信息
【发布时间】:2021-12-22 07:13:28
【问题描述】:

我的这段代码运行良好,但它显示的信息太多,我只想要代码的最后一行。

代码在这里:

import scala.io.Source

object CovidWorld {
  def main(args: Array[String]): Unit = {
    val filename = Source.fromFile("OOPAssignment3.txt")


    try{
        for (line <- filename.getLines.toList) {
            if (line.contains("Malaysia") && line.split(",").apply(7).nonEmpty) {
                val allDeathString: String = line.split(",").apply(7)
                print("\n\n Malaysia latest total amount of death: " + allDeathString)
            }
        }
    }
    finally{
        filename.close
        //print("\nThe file is now closed")
        }
    }
}

这是我从中得到的结果。result of the running code

我只想要信息的最后一行而不是整个信息。任何人都可以弄清楚如何?提前感谢您的帮助:)

【问题讨论】:

  • 你不能只在finally 部分而不是for 循环中打印吗?在for 循环之外声明`allDeathSring`。
  • 你到底想在这里实现什么。 OOPAssignement3.txt 文件中有什么内容?你想添加这些死亡人数来计算“马来西亚”的所有死亡人数吗?然后打印所有死亡人数?

标签: list scala


【解决方案1】:

您可以将 try 块的内部替换为:

 filename
      .getLines
      .filter(line => line.contains("Malaysia") && line.split(",").apply(7).nonEmpty)
      .toList
      .takeRight(1)
      .foreach(line => {
        val allDeathString: String = line.split(",").apply(7)
        print("\n\n Malaysia latest total amount of death: " + allDeathString)
      })

您的目的的关键部分是takeRight,它从列表末尾选择n 元素。当n == 1 时,您只参加最后一场比赛,这就是您想要的。

【讨论】:

  • 非常感谢,它对我帮助很大:))))
猜你喜欢
  • 2011-01-09
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
相关资源
最近更新 更多