Kotlin

【Kotlin入門】フォーマットされた文字列に動的な値を差し込む

Kotlin に限った話ではないですが、どのプログラム言語を使っていても文字列の中の一部分を動的に変更したい場面に遭遇します。

例えば以下のような文字列の場合です。

今日は 50 人のお客様が来店しました。

「50」の部分は毎日変動するけど、他の文字列は固定で残しておきたい。

そんな時はフォーマットされた文字列を用意して一部分だけ正規表現で置換を行います。

今回はフォーマットされた文字列を Kotlin で扱う方法を紹介したいと思います。

数値や文字列の埋め込み

フォーマットされた文字列に値を入れ込む仕組みは、どの言語でも用意されています。

しかし、言語によって標準関数だったり、特定のクラスのメソッドだったり使用するロジックは当然異なります。

その中で、どの言語でも共通っぽいのが埋め込む値の書式指定子です。
(型指定子と呼ばれる場合もある)

よく使う書式指定子

d – 整数
s – 文字列
f – 小数

Kotlinでフォーマットしてみる

早速、Kotlin で試してみましょう。

%d には整数を指定するので、結果は以下の通りです。

今日は 50 人のお客様が来店しました。

もちろん、特定の桁数分ゼロフィルして表現することもできます。

今日は 01 人のお客様が来店しました。
今日は 02 人のお客様が来店しました。
今日は 03 人のお客様が来店しました。
今日は 04 人のお客様が来店しました。
今日は 05 人のお客様が来店しました。
今日は 06 人のお客様が来店しました。
今日は 07 人のお客様が来店しました。
今日は 08 人のお客様が来店しました。
今日は 09 人のお客様が来店しました。
今日は 10 人のお客様が来店しました。

kotlinのformat

公式のドキュメントは以下になります。

主に、「文字」「整数」「小数」を埋め込むくらいだとは思いますが、他にも型指定子は用意されているので気になる方は調べてみてください。

ちなみに、先ほどのサンプルで無理やり小数バージョンを書くとこんな感じです。

今日は 1.000000 人のお客様が来店しました。
今日は 2.000000 人のお客様が来店しました。
今日は 3.000000 人のお客様が来店しました。
今日は 4.000000 人のお客様が来店しました。
今日は 5.000000 人のお客様が来店しました。
今日は 6.000000 人のお客様が来店しました。
今日は 7.000000 人のお客様が来店しました。
今日は 8.000000 人のお客様が来店しました。
今日は 9.000000 人のお客様が来店しました。
今日は 10.000000 人のお客様が来店しました。

Javaの場合

Java の場合は format() の中に文字列を指定します。

PHPの場合

PHP はお馴染みの sprintf() ですね。