Scala 解析文件内容简单实例

import scala.io.Source  //操作文件的类

if(args.length > 0){
  for(line <- Source.fromFile(args(0)).getLines())
    println(line.length + " " + line)
}
else
  Console.err.println("Please Enter file")
val lines = Source.fromFile(args(0)).getLines().toList
println("use function mode show file lines:" + lines)

def widthOfLength(str: String) = str.length.toString.length
var maxWidth = 0
for(line <- lines)
  maxWidth = maxWidth.max(widthOfLength(line))
  println("max width about line:" + maxWidth)
// after code sample result
val longStr = lines.reduceLeft(
  (a,b) => if(a.length > b.length) a else b
)
maxWidth = widthOfLength(longStr)
println("use reduceLeft method:" + maxWidth)
for(line <- lines){
  val numSpace = maxWidth -widthOfLength(line)
  var padding = " " * numSpace
  println(padding + line.length + " | " + line)
}
如果包含中文字符的时候这里会抛出一个异常,java.nio.charset.MalformedInputException: Input length = 1,这个是因为字符编码的原因,需要处理字符编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值