Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

書籍 パーフェクトJava | 数値から文字列への変換

パンくず

書籍 パーフェクトJava
文字列から数値への変換

概要

数値から文字列への変換について

数値から文字列への変換

String#valueOf(各データ型)

によって型変換可能です。

サンプルコード

public class Perfect2_2_7_1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		boolean bool = true;
		char ch = 'a';
		byte by = Byte.MAX_VALUE;
		short sh = Short.MAX_VALUE;
		int in = Integer.MAX_VALUE;
		long lo = Long.MAX_VALUE;
		float fl = Float.MAX_VALUE;
		double dob = Double.MAX_VALUE;
		System.out.println(String.valueOf(bool));
		System.out.println(String.valueOf(ch));
		System.out.println(String.valueOf(by));
		System.out.println(String.valueOf(sh));
		System.out.println(String.valueOf(in));
		System.out.println(String.valueOf(lo));
		System.out.println(String.valueOf(fl));
		System.out.println(String.valueOf(dob));
	}
}

出力

true
a
127
32767
2147483647
9223372036854775807
3.4028235E38
1.7976931348623157E308

数値から文字列への変換2

各データ型ごとのtoString()メソッドでも変換可能です。
StringクラスのvalueOfでは内部的にこれらのメソッドが呼ばれているため
直接こちらを利用したほうがほんの少し無駄を省くことが出来ます。
また、longとintについては基数を指定して基数変換した結果を返却することも可能です。

サンプルコード

package perfect.string;

public class Perfect2_2_7_2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		boolean bool = true;
		char ch = 'a';
		byte by = Byte.MAX_VALUE;
		short sh = Short.MAX_VALUE;
		int in = 16;
		long lo = 16L;
		float fl = 16.0f;
		double dob = 16.0d;
		// 数値から文字列への変換
		System.out.println(Boolean.toString(bool));
		System.out.println(Character.toString(ch));
		System.out.println(Byte.toString(by));
		System.out.println(Short.toString(sh));
		System.out.println(Integer.toString(in, 10)); // =>10進数
		System.out.println(Long.toString(lo, 10)); // =>10進数
		System.out.println(Float.toString(fl));
		System.out.println(Double.toString(dob));

		// 基数変換
		System.out.println(Integer.toString(in, 8)); // =>8進数
		System.out.println(Integer.toString(in, 16)); // =>16進数
		System.out.println(Long.toString(lo, 8)); // =>8進数
		System.out.println(Long.toString(lo, 16)); // =>16進数

		// 基数変換用メソッドを呼び出す
		System.out.println(Integer.toBinaryString(in)); // =>2進数
		System.out.println(Integer.toOctalString(in)); // =>8進数
		System.out.println(Integer.toString(in)); // =>10進数
		System.out.println(Integer.toHexString(in)); // =>16進数
		System.out.println(Long.toBinaryString(lo)); // =>2進数
		System.out.println(Long.toOctalString(lo)); // =>8進数
		System.out.println(Long.toString(lo)); // =>10進数
		System.out.println(Long.toHexString(lo)); // =>16進数
		System.out.println(Float.toHexString(lo)); // =>16進数
		System.out.println(Double.toHexString(lo)); // =>16進数
	}
}

出力

true
a
127
32767
16
16
16.0
16.0
20
10
20
10
10000
20
16
10
10000
20
16
10
0x1.0p4
0x1.0p4