【Swift入門】数値を文字列(String)にformatする方法

数値の桁数を指定した桁で揃えたいときには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の使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。