【Kotlin練習問題】Stringテンプレート

Kotlin

Stringテンプレートとは

String文字列にはテンプレート式というものが含まれる場合があります。これはコードの値が評価されてから、文字列として連結されるものです。テンプレート式はドルマーク($)で始まり、その後に変数名や、中括弧({})などが来ます。

val i = 15
println("i = $i") // "i = 15"と出力される

または

val s = "abc"
println("$s.length is ${s.length}") // "abc.length is 3"と出力される

正規表現

トリプルクォートで囲われた生の文字列は複数行の文字列用だけに使われるものではありません。バックスラッシュをバックスラッシュでエスケープすることなく、正規表現を作成するためにも使えます。

比較:

// 生の文字列はバックスラッシュのエスケープがいらない
"""\d"""

// 普通の文字列だとバックスラッシュのエスケープが必要
"\\d"

以下のパターンは15.07.1996(2桁の数字、ドット、2桁の数字、ドット、4桁の数字)というフォーマットで表される日付に合致します。

fun getPattern() = """\d{2}\.\d{2}\.\d{4}"""

問題

month変数を使って、上記のfun getPattern()を15 JUL 1996(2桁の数字、空白、英語での月の略称、空白、4桁の数字)というフォーマットでの日付に合致するように書き換えてください。

val month = "(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)"

fun getPattern(): String = TODO()

Kotlin Playgroundでコードの編集・動作確認ができます。

答え

val month = "(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)"

fun getPattern(): String = """\d{2} $month \d{4}"""
[解説]

Stringテンプレートとして$monthを使うことで、monthの実際の中身が評価されてから文字列に結合されます。また正規表現において、\dは0から9までの何かしらの数字、{}の中の数字は直前の正規表現が何回連続しているかを表しています。

したがって、\d{2}は何かしらの数字が二回続いている=二桁の数字という意味になります。

答え

その他の問題はこちらからどうぞ。

完全無料で通えるプログラミングスクール

プログラミング学習はどうしても一人だとつまづいてしまう時がきます。調べればわかることも少なくないですが、最初のうちは調べ方もわからないことが多いため、あまり効率的ではありません。

効率的かつ挫折せずにプログラミングを学習したい方はスクールを検討してみるのも一つの手です。

中には無料で通えるスクールや、就職保証をしてくれるスクールなどもあるので、きっとあなたの目的に応じて最適のスクールが見つかります!以下の記事で評判がよく特におすすめのスクールをいくつかピックアップしているので、スクール選びで後悔したくない方は御覧ください!

おすすめ書籍

Kotlinの文法をまず学びたい!という方には以下の書籍がおすすめです。Kotlinは日本語書籍がまだ豊富とは言えない状況ですが、細かく解説されており、Kotlin入門者のかたでもつまずくことなく学習できると思います。

created by Rinker
¥2,640 (2021/10/23 19:13:22時点 Amazon調べ-詳細)

実際にアプリを作りながら覚えていきたい!という方には以下もお勧めです。はじめに上の書籍で文法をさらっと学んでから取り組むのがお勧めです。

プロフィール

プロフィール
コードラボJP

大学卒業後SEに就職、現在は退職しフリーランスとして活動中。
『初心者でも挫折せずに一人でプログラミングを学べる』をモットーに、コードラボJPを開設
お問い合わせ等はcodelabsjp@gmail.comまで

コードラボJPをフォローする
タイトルとURLをコピーしました