id:kmizushimaさんがさらに短くカッコよく添削
object StringDump{ def main(args: Array[String])={ println(dump(args(0))) } def dump(str:String):String={ str.getBytes("UTF-8").map{ case 34 => "\\\"" case 92 => "\\\\" case n if 32 <= n && n <= 126 => new String(Array[Byte](n)) case n if n < 0 => "\\%03o" format (256+n) case n => "\\%03o" format n }.mkString("\"","","\"") } }
原型が一番上であることを考えると、
すごく短くコンパクトでかっこいい。
# このソースコードの表示がちょっと残念な件。\"でおかしくなるようだ。