int i = 123;
String s = String.valueOf(i);
int i = 0x0000ef1a;
System.out.println(Integer.toHexString(i)); // "ef1a"
System.out.println(String.format("%1$x", i)); // "ef1a"
System.out.println(String.format("%1$8x", i)); // " ef1a"
System.out.println(String.format("%1$8X", i)); // " EF1A"
System.out.println(String.format("%1$08x", i)); // "0000ef1a"
System.out.println(String.format("%1$08X", i)); // "0000EF1A"
String s = "123";
int i = Integer.parseInt(s);
int i = 7;
char ch = (char)(i + '0'); // '7'(10進表記)
int i = 10;
char ch = Character.forDigit(i, 16); // 'a'(16進表記)
16 進表現の文字に変換したい場合は、単純に '0'
を足すだけではダメなので、Character.forDigit()
を使用します。
0
~ 9
までの文字であることが保証されている場合char ch = '7';
int val = ch - '0';
char ch = 'd';
int val = Character.digit(ch, 16); // 16進表記 ==> 13
if (val == -1) {
// Error
}
変換前の文字が 0
~ 9
の範囲の文字であることが保証できるのであれば、単純に 0
を引くだけで int に変換することができます。
ただし、不正な文字(例えば 'z'
など)が渡された場合のエラー処理を行うために、通常は Character.digit()
を使用して変換するのがよいでしょう。
Character.digit()
は正しく変換できない文字を渡された場合に、-1 を返すようになっています。
16 進表記の文字を int
に変換するときは、単純に '0'
を引くという計算方法は使えないので、必ず Character.digit()
を使用して変換することになります。