パンくず
書籍 パーフェクト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