第九章:文件与正则表达式
发布时间:2020-12-14 01:15:12 所属栏目:百科 来源:网络整理
导读:第九章:文件与正则表达式 标签(空格分隔): scala课后习题 1.编写一小段Scala代码,将某个文件中的行倒转顺序(将最后一行作为第一行,依此类推) def reverseFileLine(fileName : String)={ val source = Source.fromFile(fileName); val reverseContent =
第九章:文件与正则表达式标签(空格分隔): scala课后习题 1.编写一小段Scala代码,将某个文件中的行倒转顺序(将最后一行作为第一行,依此类推)def reverseFileLine(fileName : String)={
val source = Source.fromFile(fileName);
val reverseContent = source.toArray.reverse
val out = new PrintWriter(fileName)
reverseContent.foreach(out.print)
out.close()
source.close()
}
reverseFileLine("D:/aa.txt")
2.编写Scala程序,从一个带有制表符的文件读取内容,将每个制表符替换成一组空格,使得制表符隔开的n列仍然保持纵向对齐,并将结果写入同一个文件def replaceTabWithSpace(fileName : String):Unit={
val source = Source.fromFile(fileName);
val tabPattern = """t""".r
val result = new ArrayBuffer[String]()
source.getLines().foreach(result += tabPattern.replaceAllIn(_," "))
val out = new PrintWriter(fileName)
result.foreach(line => out.write(line + "n"))
source.close()
out.close()
}
3.编写一小段Scala代码,从一个文件读取内容并把所有字符数大于12的单词打印到控制台。如果你能用单行代码完成会有额外奖励def wordCounter(fileName : String):Unit={
Source.fromFile(fileName).mkString.split("""s+""").filter(_.length>12).foreach(println(_))
}
但是这样有个问题,就是流还没有关闭。 4.编写Scala程序,从包含浮点数的文本文件读取内容,打印出文件中所有浮点数之和,平均值,最大值和最小值def printlnFloatValue(fileName : String):Unit={
val source = Source.fromFile(fileName);
val nums = source.getLines().mkString.split("""s+""").map(_.toDouble)
println(nums.sum)
println(nums.min)
println(nums.max)
println(nums.sum/nums.length)
source.close()
}
后面的题就不想写了,基本上都是这么几个方法,只是正则表达式不同。关键正则表达式的知识可以额外自己去查。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 在Exchange上使用扩展属性慢速搜索项目
- ruby-on-rails – 推送Heroku时的Git错误
- 详解Vue学习笔记进阶篇之列表过渡及其他
- c# – 在WinRT XAML中更改页面级别ListViewItem的选择颜色
- objective-c – Objective C – XCode不识别if语句之外的变
- 使用clojure.xml / parse和clojure.xml / emit在Clojure中往
- 探秘ajax跨域请求
- PostgreSQL错误解决:ERROR: current transaction is abort
- Jenkins部署Java项目
- c# – 关键值对的简明动态列表