Groovyで文字列を最大n文字に切り詰める

文字列をn文字に切り詰める


コード

def takeNchars(str, n) {
    if (str.size() == 0) return str
    return str[0..n-1]
}


result = takeNchars("abcdefgh", 5)
assert result == "abcde"
assert result.size() == 5
println result

result = takeNchars("あいうえおかき", 5)
assert result == "あいうえお"
assert result.size() == 5
println result

result = takeNchars("ab\n\nde", 5)
assert result == "ab\n\nd"
assert result.size() == 5
println result

result = takeNchars("", 5)
assert result == ""
assert result.size() == 0
println result

実行結果

[C:\workspace\groovy_sandbox]groovy Q066_文字列を最大n文字に切り詰める.groovy
abcde
あいうえお
ab

d

添削歓迎

ここ間違ってるよ
こうした方がGroovyらしくないか?
などなど
方法は、コメント、トラックバックはてブTwitter @orange_clover宛 で、お願いします。

実行環境





Groovyの詳細についてはJavadocと以下の書籍を参考にしている。




関谷 和愛、上原 潤二、須江 信洋、中野 靖治
価格: ¥ 3,360
価格は記載時点のものです。購入前にAmazonでご確認ください。

「プログラミングGROOVY」正誤表



問題自体は第2版のもの。
自分で考えるために他言語の例をGroovyで置き換えてる。




青木 峰郎、後藤 裕蔵、高橋 征義、まつもと ゆきひろ

価格: ¥ 2,940
価格は記載時点のものです。購入前にAmazonでご確認ください。




あった方が便利かな。