数値の桁数を指定した桁で揃えたいときにはformatを使用します。
この記事では、
・formatとは
・桁数を指定する方法(0埋め)
・桁数を指定する方法(空白埋め)
というformatの基本的な解説から、
・小数点の桁数を揃える方法
・日付をフォーマットする方法(DateFormatter)
などの応用的な使い方に関しても解説していきます。
今回はそんな桁数をそろえるformatの使い方についてわかりやすく解説します!
※この記事ではSwift4.0を使用しています。
formatとは
format(フォーマット)は、数値の桁数を0で揃えたいときに使用します。
例えば数値や年月日などの表示桁数が不揃いで表示を合わせたいときにformatを使用すると便利です。
formatは以下のように記述します。
書き方:
String(format: “桁数指定”, 値)
第一引数にformat:を記述し、桁数を指定します。
第二引数には桁数を揃えたい値を指定します。
formatの基本的な使い方
桁数の指定(0埋め)
ここでは実際にformatの使い方を見ていきましょう。
数値を5桁で揃えたい場合は以下のように記述します。
0を5桁で揃える
print(String(format: "%05d", 1)) print(String(format: "%05d", 10)) print(String(format: "%05d", 100)) print(String(format: "%05d", 1000)) print(String(format: "%05d", 10000))
実行結果:
00001 00010 00100 01000 10000
format:で指定した”%05d”は、0を左寄せで5桁分埋めていく処理となります。
既にフォーマットする値が指定した桁数と同じまたはそれ以上の場合は0埋めは行われません。
実例として、例えば年月日時の桁数を揃えたいときのサンプルを紹介します。
年月日時の桁数を揃える
let year = 2017 let month = 7 let day = 4 let hour = 2 let min = 6 //桁数を揃える let zeroFillmonth = String(format: "%02d", month) let zeroFillday = String(format: "%02d", day) let zeroFillhour = String(format: "%02d", hour) let zeroFillmin = String(format: "%02d", min) //文字列を結合する let date = String(year) + "/" + zeroFillmonth + zeroFillday + "/" + zeroFillhour + zeroFillmin print(date);
実行結果:
2017/0704/0206
桁数の指定(空白埋め)
0の代わりに空白を指定したい場合は以下のように記述します。
空白で揃える
print(String(format: "%5d", 1)) print(String(format: "%5d", 10)) print(String(format: "%5d", 100)) print(String(format: "%5d", 1000)) print(String(format: "%5d", 10000))
実行結果:
1 10 100 1000 10000
小数点の桁数を揃える
小数点以下の桁数を揃えたい場合は「%.5f」のように指定します。
整数の場合と同様指定した桁数と同じ、またはそれ以上の場合は0埋めは行われません。
小数点以下の桁数を揃える
print(String(format: "%.5f", 10.1)) print(String(format: "%.5f", 10.12)) print(String(format: "%.5f", 10.123)) print(String(format: "%.5f", 10.1234)) print(String(format: "%.5f", 10.123456789))
実行結果:
10.10000 10.12000 10.12300 10.12340 10.12346
日付をフォーマットする(DateFormatter)
日付を指定した書式でフォーマットするにはDateFormatterクラスを使用します。
フォーマットするにはDateFormatterクラスのdateFormatを使用し、yyyymmddなどの日付の書式を指定します。
以下に現在の日時を指定したフォーマットに変換するサンプルを紹介します。
サンプルプログラム
//DateFormatterクラスのオブジェクトを生成 let df = DateFormatter() //DateFormatterクラスのオブジェクトを生成 df.dateFormat = "yyyy-MM-dd' 'HH:mm:ss" //現在に日付を取得 let now = Date() print(df.string(from: now))
実行結果:
2017-10-02 10:16:20
まとめ
ここでは数値の桁数を揃える方法として、
・formatとは
・桁数を指定する方法(0埋め)
・桁数を指定する方法(空白埋め)
・小数点の桁数を揃える方法
・日付をフォーマットする方法(DateFormatter)
などについて解説しました。
数値の桁数を揃えるときにformatはよく使用しますので使い方は理解しておきましょう。
もしformatの使い方を忘れてしまったら、この記事を思い出してくださいね!