Tips

Apache Commons Javaプログラム演習問題 第4回

Apache Commons Javaプログラム演習問題 第4回

Apache Commons を利用した Java でのプログラム作成問題の4回目となります。

環境を構築していない場合は、概要を読み、環境を構築してから実施してください。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

package jp.pjin.tech.commons;

public class Practice004 {
	public static void main(String[] args) {
		String seq = "115";
		int len = 10;
		char mask = '0';
		StringBuilder primaryKey = new StringBuilder();

		if (seq == null) {
			seq = "";
		}
		for (int i = seq.length(); i < len; i++) {
			primaryKey.append(mask);
		}
		primaryKey.append(seq);

		System.out.println("primaryKey:" + primaryKey.toString());
	}
}

上記のコードは、数字の左に0を埋めて、10桁にするというコードになります。
ただ、nullの場合は、0を10桁にするというものになっております。
commonsを利用し、すっきりしたコードに変更してください。

解答例1
package jp.pjin.tech.commons;

import org.apache.commons.lang3.StringUtils;

public class Practice004 {
	public static void main(String[] args) {
		String seq = null;
		int len = 10;
		char mask = '0';

		String primaryKey = StringUtils.leftPad(StringUtils.trimToEmpty(seq), len, mask);

		System.out.println("primaryKey:" + primaryKey);
	}
}

leftPadは、Databaseのキー項目がchar型の場合などプログラムで採番し、固定長にするという処理を書いたりします。
この場合、文字列の先頭何文字かを固定にして、残りの数字を0埋めするという処理を行います。

java.lang.StringにleftPadがあれば良いのですが、現状ありませんので、共通クラスを作成するか、StringUtilsを利用するかのどちらかになります。

StringUtils#leftPadは引数がnullの場合は、nullを返しますので、seqがnullを想定できる場合は、StringUtils#trimToEmptyを利用しBlankに変換します。

if文もなくなってかなりすっきりしたコードになったと思います。

apache commons

Apache Commons Javaプログラム演習問題 第23回

Apache Commons を利用した Java でのプログラム作成問題の23回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第22回

Apache Commons を利用した Java でのプログラム作成問題の22回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第21回

Apache Commons を利用した Java でのプログラム作成問題の21回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第20回

Apache Commons を利用した Java でのプログラム作成問題の20回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第19回

Apache Commons を利用した Java でのプログラム作成問題の19回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
apache commons

Apache Commons Javaプログラム演習問題 第18回

Apache Commons を利用した Java でのプログラム作成問題の18回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
apache commons

Apache Commons Javaプログラム演習問題 第17回

Apache Commons を利用した Java でのプログラム作成問題の17回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
apache commons

Apache Commons Javaプログラム演習問題 第16回

Apache Commons を利用した Java でのプログラム作成問題の16回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第12回

Apache Commons を利用した Java でのプログラム作成問題の12回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第15回

Apache Commons を利用した Java でのプログラム作成問題の15回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search