Javaで【String.format】メソッドを使用して、
数値をゼロ埋め(ゼロパディング)する方法を
解説していきます.
金融関係のシステムでは、
頻繁に設計されている仕様なので
覚えておくと良いでしょう。
ゼロ埋め以外にも、半角スペースなどで
埋める方法を解説していきます。
文字列から数値型に変換する場合、
まずは何桁埋めするかで
使う型が変わってきます。
整数型の値の範囲を超えた
数値型変換を実行すると
- short型:サイズは2バイト
- int型:サイズは4バイト
- long型:サイズは8バイト
符号なし整数型の値の範囲
【8ビット(1バイト)】
0~255
【16ビット(2バイト)】
0~65,535
【32ビット(4バイト)】
0~4,294,967,295
符号付き整数型の値の範囲
【8ビット(1バイト)】
-128~127
【16ビット(2バイト)】
-32,768~32,767、
【32ビット(4バイト)】
-2,147,483,648~2,147,483,647
10桁以上の数値変換をしたい場合は
long型を使います。
基本
String.format(形式文字列, 値);
例
String.format(“%016d”, -123456789012);
- %:書式文字列であることを表す指示子
- 0:埋める文字
- 16:桁数
- d:出力する値の型
- decimal型:%d
- boolean型:%b
- float型:%f
- String型:%s
- char型:%c
数値の0埋め
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.example.demo; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PaddingLogic { public static void main(String[] args) { String minus = "^-"; String paddHeadZero15 = "%015d"; String paddHeadZero16 = "%016d"; String strNum = "-123456789012"; Pattern pattern = Pattern.compile(minus); Matcher mtch = pattern.matcher(strNum); String strPrint = null; if (mtch.find()) { //-の場合 System.out.println("正規表現にマッチしました。"); System.out.println(mtch.group()); System.out.println(strNum); //最大15桁まで0埋め strPrint = String.format(paddHeadZero15, Long.parseLong(strNum)); } else { System.out.println("正規表現にマッチしませんでした。"); System.out.println(strNum); //最大16桁まで0埋め strPrint = String.format(paddHeadZero16, Long.parseLong(strNum)); } System.out.println(strPrint); } } |
実行結果
1 2 3 4 |
正規表現にマッチしました。 - -123456789012 -00123456789012 |
数値を3桁ごとにカンマ区切り
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package com.example.demo; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PaddingLogicZero { public static void main(String[] args) { String minus = "^-"; String commaDelimiterFomt = "%,d"; String strNum = "-123456789012"; Pattern pattern = Pattern.compile(minus); Matcher mtch = pattern.matcher(strNum); String strPrint = null; if (mtch.find()) { //-の場合 System.out.println("正規表現にマッチしました。"); System.out.println(mtch.group()); System.out.println(strNum); //最大15桁まで0埋め strPrint = String.format(commaDelimiterFomt, Long.parseLong(strNum)); } else { System.out.println("正規表現にマッチしませんでした。"); System.out.println(strNum); //最大16桁まで0埋め strPrint = String.format(commaDelimiterFomt, Long.parseLong(strNum)); } System.out.println(strPrint); } } |
実行結果
1 2 3 4 |
正規表現にマッチしました。 - -123456789012 -123,456,789,012 |
文字列の前方、後方の半角スペース埋め
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
package com.example.demo; public class PaddingLogicHalfSpace { public static void main(String[] args) { String paddFrontHalfSpace10 = "%10s"; String paddBackHalfSpace10 = "%-10s"; String str = "abcde"; System.out.println("実施前:半角スペース埋め(前方)"); System.out.println(makeValue(str)); System.out.println("実施後:半角スペース埋め(前方)"); System.out.println(makeValue(String.format(paddFrontHalfSpace10, str))); System.out.println("実施前:半角スペース埋め(後方)"); System.out.println(makeValue(str)); System.out.println("実施後:半角スペース埋め(後方)"); System.out.println(makeValue(String.format(paddBackHalfSpace10, str))); } private static String makeValue(String str) { StringBuilder sb = new StringBuilder(); sb.append("【"); sb.append(str); sb.append("】"); return sb.toString(); } } |
実行結果
1 2 3 4 5 6 7 8 |
実施前:半角スペース埋め(前方) 【abcde】 実施後:半角スペース埋め(前方) 【 abcde】 実施前:半角スペース埋め(後方) 【abcde】 実施後:半角スペース埋め(後方) 【abcde 】 |
parseIntの返却値の場合
int型やchar型などのプリミティブ型を返す。
valueOfの返却値の場合
Integerクラスを返す。
プリミティブ型は
インスタンス化ができないので
プリミティブ型.メソッド名()のように
メソッドを呼び出すことができません。
Integerクラスはint型のラッパークラスなので
メソッドを持っており、
インスタンス化することも可能です。
またプリミティブ型にない機能として
nullを代入することが出来ます。
int型では32bitのみの
メモリ確保であることに対し、
Integer型はメソッドを持つ分、
32bitよりも多くのメモリを使用します。
今の年収に満足していますか?
同じ契約金で業務委託していても
在籍している会社によって給料が違います。
今と同じスキル・業務内容でも
年収が変わるということです。
さらに以下を考慮すると
より年収アップにつながります。
- スキルセットと需要
- 経験と実績
- 業界や地域の市場価値
- 転職時の交渉スキル
転職先の企業の給与体系や
業界の標準的な給与水準を調査し、
給与のみでなく、
福利厚生やキャリア成長の機会、
ワークライフバランスなどの要素も
総合的に考慮することが重要です。
Kindle Unlimitedは、Amazonが提供する
月額定額制の電子書籍サービスを活用します。
また、Kindle Unlimitedには、
体験版が提供されています。
体験版では、一定期間(通常は30日間)に限り、
Kindle Unlimitedのサービスを
無料で利用することができます。
1.豊富な書籍のラインナップ
Kindle Unlimitedには、幅広いジャンルの書籍が
数十万冊以上含まれています。
小説、ビジネス書、自己啓発書、
学術書、漫画など、
様々なテーマや興味に合わせて
多彩な選択肢があります。
2.サービスの内容を体験
体験版では、Kindle Unlimitedの全ての機能を使いながら、
豊富な書籍のラインナップや
読書体験を体験することができます。
自身の読書の好みや
利用頻度に合うかどうかを確認できます。
3.解約が可能
体験版期間中にKindle Unlimitedのサービスに
満足しなかった場合、
期限内に解約することができます。
その場合、追加料金はかかりません。
Kindle Unlimitedでは
さまざまなジャンルの書籍が提供されています。
ITエンジニアとしてスキルを向上させたり
新しい技術を学んだりする際に、
Kindle Unlimitedは
便利な資源となるのでおすすめです。
この記事へのコメントはありません。