来看这三种不同的写法
object strreplace { def main(args: Array[String]): Unit = { val loop = 50000000; { val start = System.currentTimeMillis() for (i <- 0 to loop) { val a = ("123456".replace("2", "00").replace("3", "00") ) // println(a) } val finish = System.currentTimeMillis() println( (finish-start)/1000.0 + " seconds") } { val start = System.currentTimeMillis() for (i <- 0 to loop) { val a = ("123456".map { x => if (x == '2' || x == '3') "00" else x }.mkString("") ) // println(a) } val finish = System.currentTimeMillis() println( (finish-start)/1000.0 + " seconds") } { val start = System.currentTimeMillis() for (i <- 0 to loop) { val a = ("123456".replaceAll("[23]", "00") ) // println(a) } val finish = System.currentTimeMillis() println( (finish-start)/1000.0 + " seconds") } } }
输出如下
36.898 seconds 16.776 seconds 23.287 seconds