Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
int.Parse() / int.TryParse()
文字列を整数に変換する『int.Parse()』と、変換失敗時に例外を投げない安全な変換メソッド『int.TryParse()』です。
構文
// 文字列を int に変換します。変換できない場合は FormatException をスローします。 int.Parse(string s) // 変換を試みます。成功した場合は true と変換後の値を返します。失敗しても例外は発生しません。 int.TryParse(string s, out int result) // double / long などの他の数値型にも同様のメソッドがあります。 double.Parse(string s) double.TryParse(string s, out double result)
メソッド一覧
| メソッド | 概要 |
|---|---|
| int.Parse(string s) | 文字列を int に変換します。変換できない文字列が渡されると FormatException がスローされます。 |
| int.TryParse(string s, out int result) | 変換を試みます。成功時は true を返し result に値が入ります。失敗時は false を返し result は 0 になります。 |
| double.Parse(string s) | 文字列を double に変換します。 |
| double.TryParse(string s, out double result) | 文字列を double に変換を試みます。 |
サンプルコード
using System;
// int.Parse() で文字列を整数に変換します。
string 文字数値 = "42";
int 数値 = int.Parse(文字数値);
Console.WriteLine(数値 + 10); // 52
// int.TryParse() で安全に変換します。
string 入力1 = "100";
string 入力2 = "abc"; // 数値に変換できない文字列です。
if (int.TryParse(入力1, out int 結果1))
{
Console.WriteLine("変換成功: " + 結果1); // 変換成功: 100
}
if (!int.TryParse(入力2, out int 結果2))
{
Console.WriteLine("変換失敗: " + 結果2); // 変換失敗: 0(result は 0 になります)
}
// ユーザー入力を整数に変換する典型的なパターンです。
string ユーザー入力 = "75";
if (int.TryParse(ユーザー入力, out int スコア))
{
Console.WriteLine($"スコアは{スコア}点です。");
}
else
{
Console.WriteLine("正しい数値を入力してください。");
}
// スコアは75点です。
// double.Parse() の例です。
double 身長 = double.Parse("172.5");
Console.WriteLine(身長); // 172.5
概要
ユーザーからの入力や外部データを変換する場合は、『int.Parse()』ではなく『int.TryParse()』を使うことを強く推奨します。入力値が数値でない場合に『int.Parse()』は例外をスローしてプログラムが停止しますが、『int.TryParse()』は安全に失敗を検知できます。
『Convert.ToInt32()』も文字列を整数に変換できますが、null を渡すと 0 を返す点が異なります。詳細は『Convert.ToString() / Convert.ToInt32()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。