🔄 int ⇔ String 変換ツール
クイック入力:
📋 複数値の一括変換
改行またはカンマ区切りで複数の値を一度に変換できます。
📖 言語別コード一覧
| 言語 | int → String | String → int | 備考・注意点 |
|---|---|---|---|
| Java | String.valueOf(n) Integer.toString(n) n + “” |
Integer.parseInt(s) Integer.valueOf(s) |
parseIntは数値以外でNumberFormatException |
| Python | str(n) | int(s) | int()は基数指定可:int(“ff”,16) |
| JavaScript | String(n) n.toString() n.toString(16) |
parseInt(s,10) Number(s) |
parseIntは基数(radix)指定を推奨 |
| C# | n.ToString() Convert.ToString(n) |
int.Parse(s) Convert.ToInt32(s) int.TryParse(s, out i) |
TryParseはエラー時でも例外を投げない |
| C言語 | sprintf(buf, “%d”, n) snprintf(buf, size, “%d”, n) |
atoi(s) strtol(s, NULL, 10) |
strtolはエラーハンドリング可能でatoi推奨外 |
| Kotlin | n.toString() | s.toInt() s.toIntOrNull() |
toIntOrNullは変換失敗時にnullを返す |
| Swift | String(n) | Int(s) | Int(s)は失敗時にnil(Optional型) |
| Ruby | n.to_s | s.to_i Integer(s) |
Integer()は厳密変換、失敗時にArgumentError |
| Go | strconv.Itoa(n) | strconv.Atoi(s) | Atoiはerrorも返す(多値返却) |
| PHP | (string)$n strval($n) |
(int)$s intval($s) |
PHPは型変換が緩やか(弱い型付け) |
📝 変換手順とサンプル
Java:int → String の変換手順
- 変数を宣言:
int num = 42; - 変換メソッドを選択(String.valueOf推奨):
String s = String.valueOf(num); - 変換結果を確認:
System.out.println(s); // "42"
int num = 42;
String s1 = String.valueOf(num); // “42”(推奨)
String s2 = Integer.toString(num); // “42”
String s3 = num + “”; // “42”(簡易)
String s4 = String.format(“%d”, num); // “42”(フォーマット指定)
Java:String → int の変換手順
- 文字列が有効な整数か確認する(例外処理を忘れずに)
- Integer.parseIntで変換:
int n = Integer.parseInt("42"); - 変換できない文字列の場合はNumberFormatExceptionが発生する
String s = “42”;
int n1 = Integer.parseInt(s); // 42(推奨)
int n2 = Integer.valueOf(s); // 42(Integer型として返却)
try {
int n3 = Integer.parseInt(“abc”); // NumberFormatException!
} catch (NumberFormatException e) {
System.out.println(“変換エラー: “ + e.getMessage());
}
Python:int ↔ str の変換例
n = 255
s = str(n) # “255”
h = hex(n) # “0xff”(16進数文字列)
o = oct(n) # “0o377″(8進数文字列)
b = bin(n) # “0b11111111″(2進数文字列)
n2 = int(“255”) # 255
n3 = int(“ff”, 16) # 255(16進数文字列から変換)
n4 = int(“11111111”, 2) # 255(2進数文字列から変換)
JavaScriptの変換と注意点
let n = 255;
String(n) // “255”(推奨・nullsafeでない場合も安全)
n.toString() // “255”(10進数)
n.toString(16) // “ff”(16進数)
n.toString(2) // “11111111”(2進数)
parseInt(“255”, 10) // 255(radix=10を必ず指定)
parseInt(“ff”, 16) // 255(16進数文字列から変換)
parseInt(“0xff”, 16) // 255(プレフィックスあり)
Number(“255”) // 255
+“255” // 255(単項+演算子)
⚠️ 注意:JavaScriptの parseInt は基数(radix)を省略すると環境によって8進数として解釈される場合があります。必ず第2引数に10を指定してください。
🔢 進数別変換早見表
| 10進数 | 2進数文字列 | 8進数文字列 | 16進数文字列 | Java(String.valueOf) |
|---|---|---|---|---|
| 0 | “0” | “0” | “0” | “0” |
| 1 | “1” | “1” | “1” | “1” |
| 7 | “111” | “7” | “7” | “7” |
| 8 | “1000” | “10” | “8” | “8” |
| 10 | “1010” | “12” | “a” | “10” |
| 15 | “1111” | “17” | “f” | “15” |
| 16 | “10000” | “20” | “10” | “16” |
| 42 | “101010” | “52” | “2a” | “42” |
| 100 | “1100100” | “144” | “64” | “100” |
| 255 | “11111111” | “377” | “ff” | “255” |
| 256 | “100000000” | “400” | “100” | “256” |
| 1000 | “1111101000” | “1750” | “3e8” | “1000” |
| -1 | “-1” | “-1” | “-1” | “-1” |
💡 よくある変換シナリオ
① ユーザー入力(文字列)を数値として処理する
// フォームの入力値(String)をintに変換して計算する例(Java)
String input = textField.getText(); // “100”
try {
int value = Integer.parseInt(input.trim());
int result = value * 2;
label.setText(“結果: “ + String.valueOf(result));
} catch (NumberFormatException e) {
label.setText(“有効な整数を入力してください”);
}
② 整数をゼロ埋め文字列に変換する
// Java:String.formatでゼロ埋め
int n = 7;
String s = String.format(“%05d”, n); // “00007”
// Python:f-string・format()によるゼロ埋め
n = 7
s = str(n).zfill(5) # “00007”
s2 = format(n, ’05d’) # “00007”
③ 16進数の相互変換(カラーコード等)
// Java:16進数文字列へ変換
int color = 16711680; // 赤色 #FF0000
String hex = Integer.toHexString(color); // “ff0000”
String hex2 = String.format(“%06X”, color); // “FF0000″(大文字)
// 16進数文字列からintへ
int c2 = Integer.parseInt(“FF0000”, 16); // 16711680
④ 文字列の数値チェックと安全な変換(Kotlin)
val s = “abc”
val n: Int? = s.toIntOrNull() // null(変換失敗時はnull)
val m: Int = n ?: 0 // デフォルト値0を使用
⚠️ 型変換の注意点とエラー対策
| ケース | 入力例 | Java(parseInt) | Python(int()) | JavaScript(parseInt) |
|---|---|---|---|---|
| 通常の整数 | “123” | 123 ✅ | 123 ✅ | 123 ✅ |
| 負の整数 | “-99” | -99 ✅ | -99 ✅ | -99 ✅ |
| 空文字列 | “” | ❌ NumberFormatException | ❌ ValueError | NaN ⚠️ |
| スペース含む | ” 123 “ | ❌ 例外(trim()推奨) | 123 ✅(自動trim) | 123 ✅(自動trim) |
| 小数点含む | “3.14” | ❌ NumberFormatException | ❌ ValueError | 3 ⚠️(小数部切り捨て) |
| アルファベット | “abc” | ❌ NumberFormatException | ❌ ValueError | NaN ⚠️ |
| null | null | ❌ NumberFormatException | ❌ TypeError | 0 ⚠️ |
| オーバーフロー | “2147483648” | ❌ NumberFormatException | ✅(自動Long) | 2147483648 ✅(Numberで管理) |
⚠️ Javaで安全に変換するには必ずtry-catchを使用するか、事前に正規表現で入力値を検証してください:
s.matches("-?\\d+")❓ よくある質問(FAQ)
JavaでintをStringに変換する最も良い方法は?
String.valueOf(int)が最も推奨されます。内部的にはInteger.toString()を呼び出しており、nullに対しても安全に”null”という文字列を返す点が優れています。単純さと安全性を兼ね備えており、コーディング規約でも推奨されることが多いです。n + “”は簡潔ですが、文字列結合コストがかかるため大量変換には不向きです。
parseInt()とvalueOf()の違いは何ですか?
Integer.parseInt(String s)はプリミティブ型のintを返します。一方、Integer.valueOf(String s)はIntegerオブジェクト(ラッパークラス)を返します。オートボクシング/アンボクシングにより通常は同様に使えますが、パフォーマンスを重視する場合はprimitiveを直接返すparseIntが適しています。
文字列が数値に変換できるか事前確認する方法は?
Javaでは正規表現 s.matches(“-?\\d+”) で確認可能です。KotlinではtoIntOrNull()が便利で、変換できない場合はnullを返します。C#ではint.TryParse(s, out int n)が推奨で、戻り値のboolで成否を確認できます。JavaScriptではisNaN(Number(s))を使う方法があります。
16進数文字列(例:”ff”)をintに変換するには?
各言語で基数を指定して変換します。Java:Integer.parseInt(“ff”, 16) → 255。Python:int(“ff”, 16) → 255。JavaScript:parseInt(“ff”, 16) → 255。C#:Convert.ToInt32(“ff”, 16) → 255。基数として2(2進数)、8(8進数)、16(16進数)が指定可能です。
JavaのString.formatはいつ使うべきですか?
書式指定が必要なとき(ゼロ埋め、小数点桁数、16進数表記など)に適しています。例:String.format(“%05d”, 7) → “00007”、String.format(“%X”, 255) → “FF”。単純なint→String変換にはvalueOf()の方が高速です。
PythonのStr()とint()以外に変換する方法は?
repr(n)もstr(n)と同様に文字列を返します。formatメソッドを使ったformat(255, ‘x’)は16進数文字列”ff”を返します。f-string(f”{n}”)も有効です。逆変換ではint(“0xff”, 16)のように16進数プレフィックス付き文字列も直接変換できます。
int型の最大値・最小値は言語によって異なりますか?
はい、異なります。Java/C#のint型は32ビット符号付き整数で、最大値は2,147,483,647(INT_MAX)、最小値は-2,147,483,648(INT_MIN)です。JavaScriptのNumber型は64ビット浮動小数点(IEEE 754)で、安全な整数範囲はNumber.MAX_SAFE_INTEGER(2^53-1)です。Pythonのint型は任意精度整数で上限がありません。
