第九章:文件与正则表达式
2015-05-21 16:34
148 查看
第九章:文件与正则表达式
标签(空格分隔): 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() }
后面的题就不想写了,基本上都是这么几个方法,只是正则表达式不同。关键正则表达式的知识可以额外自己去查。
相关文章推荐
- 快学Scala习题解答—第九章 文件和正则表达式
- 快学Scala习题解答—第九章 文件和正则表达式
- Scala 文件和正则表达式 快学Scala 第九章习题答案
- 快学scala 第九章 文件和正则表达式 读书笔记及习题答案代码
- java流与文件——正则表达式
- Scala进阶源码实战之三——文件IO、正则表达式、高阶函数
- Java正则表达式的多行匹配实战-将java文件中的单行和多行注释内容替换为空
- 4.正则表达式和文件格式化处理
- 2015年8月27日【文件权限管理及grep正则和扩展正则表达式】-JY1506402-19+liuhui880818
- 用正则表达式解析C#文件(Updated)
- Smarty 模板 图片、CSS、JavaScript文件路径替换(用ecshop的正则表达式)
- Hadoop: the definitive guide 第三版 拾遗 第三章 之查看文件及正则表达式
- Hadoop 和 spark 读取多个文件通配符规则(正则表达式)joe
- FileUpload1 上传文件类型验证正则表达式
- Java 对象序列化和操作文件 正则表达式
- 利用正则表达式从文件路径中提取出文件名(包含后缀)
- linux系统结构,文件地址、管理;正则表达式
- C# 在.cs文件中使用正则表达式
- 利用正则表达式统计某个某个文件夹下所有java文件的 空格行数、注释行数、和代码行数
- 正则表达式抓取文件内容中的http链接地址