kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

SuperCSV 読み込み時、カンマ区切りつき数値に対応

CSV読み込みで、読み込み対象に書かれている数値項目には、カンマ区切りがありました。これを読み込むために、ParseIntを拡張したクラスを作成してみました。

import org.supercsv.cellprocessor.ParseInt;
import org.supercsv.exception.SuperCSVException;
import org.supercsv.util.CSVContext;

/**
 * SuperCSVのParseIntを拡張したクラスです。 カンマ区切りつきの数値を読み込めるようになります。
 */
public class ParseIntEx extends ParseInt {

	public ParseIntEx() {
		super();
	}

	public Object execute(final Object value, final CSVContext context)
			throws SuperCSVException {
		Object editedValue = value;
		if (value instanceof String) {
			// 読み込み時、カンマ除去する。
			editedValue = ((String) value).replaceAll(",", "");
		}
		return super.execute(editedValue, context);
	}
}

動作環境

  • OS : Windows 7
  • JDK : Version 1.6.0
  • SuperCSV : Version 1.52