【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

【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

まとめ

ここでは数値の桁数を揃える方法として、

・formatとは
・桁数を指定する方法(0埋め)
・桁数を指定する方法(空白埋め)
・小数点の桁数を揃える方法
・日付をフォーマットする方法(DateFormatter)

などについて解説しました。

数値の桁数を揃えるときにformatはよく使用しますので使い方は理解しておきましょう。

もしformatの使い方を忘れてしまったら、この記事を思い出してくださいね!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

侍テック編集部

株式会社SAMURAI

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close