第一个版本:
import scala.io.Source if(args.length>0){ for(line<-Source.fromFile(args(0)).getLines) print(line.length+" "+line) }else{ Console.err.println("Please enter FileName") }
运行该程序时抛出了异常:java.lang.OutOfMemoryError:Java heap space
是因为文件过大?
错误原因暂时不管,可以参考文章:http://www.cnblogs.com/cyjch/archive/2012/04/10/2440421.html
第二版:
import scala.io.Source def widthOfLength(s:String)=s.length.toString.length if(args.length>0){ val lines=Source.fromFile(args(0)).getLines.toList val longestLine=lines.reduceLeft( (a,b)=>if(a.length>b.length) a else b ) val maxWidth=widthOfLength(longestLine) for(line<-lines){ val numSpaces=maxWidth-widthOfLength(line) val padding=" "*numSpaces print(padding+line.length+"|"+line) } }else{ Console.err.println("Please enter FileName") }
时间: 2024-10-06 23:09:14