Integer.parseIntとInteger.toString
基数をパラメータに取るIntegerのparseIntとtoStringが頭の中でごっちゃになってたので整理。
- parseInt
- radix(基数)で表された文字列を十進法にしてintで返す
public static int parseInt(String s, int radix)
radixが2以上36以下の範囲外だと例外(NumberFormatException)をスロー
(0123456789abcdefghijklmnopqrstuvwxyzで36文字)
Integer.parseInt("100", 2); // 4 ※二進法の100を十進法で表す Integer.parseInt("FF", 16); // 255 ※16進法のFFを十進法で表す Integer.parseInt("10", 3); // 3 ※3進法の10を十進法で表す Integer.parseInt("2", 37); // NumberFormatException発生。raddixが36以上はダメ Integer.parseInt("2", 2); // NumberFormatException発生。二進法の数字に2などあり得ない
- toString
- 整数をradix(基数)で表された文字列にしてStringで返す
public static String toString(int i, int radix)
radixが2以上36以下の範囲外の場合、代わりに10がraddix(基数)として使われる
Integer.toString(255, 16); // ff 255dを16進法で表す Integer.toHexString(255); // ff Integer.toString(0xff, 16); // ff ※意味無し Integer.toString(255, 2); // 11111111 255(十進)を二進法で表す Integer.toBinaryString(0xff); // 11111111 Integer.toString(0xff, 2); // 11111111 ff(16進)を二進法で表す Integer.toString(010, 10); // 8 八進法の010を十進法で表す Integer.toString(16, 17); // g 十進の16を17進法で表す Integer.toString(0x10, 17); // g 16進の10を17進法で表す