Created
April 22, 2014 02:24
-
-
Save sifue/11163362 to your computer and use it in GitHub Desktop.
切り出したい処理が処理の中間にあるメソッド
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.nio.charset.Charset | |
import scala.util.Random | |
/** | |
* ランダムに文字列を一つだけ埋め込むことにできるテンプレートを取得する | |
*/ | |
object RandomTemplateProvider { | |
private val templates = Seq( | |
"<html><body><h1>%s</h1></body></html>", | |
"# %s", | |
"\(^o^)/%s\(^o^)/", | |
"⊂( ੭ु⁾⁾`ω´)੭ु⁾⁾<%s" | |
) | |
def get: String = Random.shuffle(templates).head | |
} | |
/** | |
* 切り出したい処理が処理の間にある重複行のある2つのメソッドを持つオブジェクト | |
*/ | |
object Duplicate extends App { | |
/** | |
* メッセージを受け取りテンプレートに埋め込んだ上でそのUTF-8でのバイト数と内容を表示する | |
* @param message | |
*/ | |
def printByteLengthAndContent(message: String) = { | |
val template = RandomTemplateProvider.get // 重複行 | |
val content = String.format(template, message) // 重複行 | |
val length = content.getBytes(Charset.forName("UTF-8")).length | |
println(length) // 重複行 | |
println(content) // 重複行 | |
} | |
/** | |
* メッセージを受け取りテンプレートに埋め込んだ上でその文字数と内容を表示する | |
* @param message | |
*/ | |
def printCharLengthAndContent(message: String) = { | |
val template = RandomTemplateProvider.get // 重複行 | |
val content = String.format(template, message) // 重複行 | |
val length = content.length | |
println(length) // 重複行 | |
println(content) // 重複行 | |
} | |
printByteLengthAndContent("こんにちわ") | |
printCharLengthAndContent("おはよう") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment