【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

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説