[C#] 文字列と数値の変換方法
C#で文字列と数値を相互に変換する方法はいくつかあります。
文字列を数値に変換するには、int.Parse()
やdouble.Parse()
、decimal.Parse()
などのメソッドを使用します。
これらは文字列が数値形式であることを前提としています。
変換が失敗する可能性がある場合は、int.TryParse()
やdouble.TryParse()
を使用すると安全です。
逆に、数値を文字列に変換するには、ToString()メソッド
を使用します。
これにより、数値型の変数を簡単に文字列に変換できます。
これらの方法を使うことで、C#での文字列と数値の変換が効率的に行えます。
- int.Parse()、double.Parse()、decimal.Parse()を使った文字列から数値への変換方法
- TryParse()メソッドを用いた安全な変換の実践方法
- ToString()メソッドやフォーマット指定子を使った数値から文字列への変換方法
- 変換時のエラーハンドリングの重要性とその実践方法
- ユーザー入力やファイル、Web APIからのデータ変換の応用例
文字列から数値への変換方法
C#では、文字列を数値に変換する方法がいくつかあります。
ここでは、int.Parse()
、double.Parse()
、decimal.Parse()
、TryParse()メソッド
、そしてConvertクラス
を使った変換方法について詳しく解説します。
int.Parse()の使い方
int.Parse()メソッド
は、文字列を整数型に変換するために使用されます。
以下に基本的な使い方を示します。
using System;
class Program
{
static void Main()
{
string numberString = "123"; // 変換する文字列
int number = int.Parse(numberString); // 文字列を整数に変換
Console.WriteLine(number); // 結果を表示
}
}
出力:
123
このコードでは、文字列"123"
を整数123
に変換しています。
int.Parse()
は、変換が成功しない場合に例外をスローするため、入力が確実に整数であることが分かっている場合に使用します。
double.Parse()の使い方
double.Parse()メソッド
は、文字列を倍精度浮動小数点数に変換します。
以下にその例を示します。
using System;
class Program
{
static void Main()
{
string doubleString = "123.45"; // 変換する文字列
double number = double.Parse(doubleString); // 文字列をdoubleに変換
Console.WriteLine(number); // 結果を表示
}
}
出力:
123.45
この例では、文字列"123.45"
をdouble型
の数値に変換しています。
double.Parse()
も、変換が失敗すると例外をスローします。
decimal.Parse()の使い方
decimal.Parse()メソッド
は、文字列を高精度の10進数に変換します。
以下にその使用例を示します。
using System;
class Program
{
static void Main()
{
string decimalString = "123.456"; // 変換する文字列
decimal number = decimal.Parse(decimalString); // 文字列をdecimalに変換
Console.WriteLine(number); // 結果を表示
}
}
出力:
123.456
このコードでは、文字列"123.456"
をdecimal型
に変換しています。
decimal型
は、金融計算などで高精度が必要な場合に使用されます。
TryParse()メソッドの活用
TryParse()メソッド
は、文字列を数値に変換する際に、変換が成功したかどうかを確認するために使用されます。
変換が失敗した場合でも例外をスローせず、false
を返します。
int.TryParse()の例
using System;
class Program
{
static void Main()
{
string numberString = "123"; // 変換する文字列
if (int.TryParse(numberString, out int number)) // 変換を試みる
{
Console.WriteLine(number); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("変換に失敗しました"); // 失敗した場合のメッセージ
}
}
}
出力:
123
この例では、int.TryParse()
を使用して、変換が成功したかどうかを確認しています。
double.TryParse()の例
using System;
class Program
{
static void Main()
{
string doubleString = "123.45"; // 変換する文字列
if (double.TryParse(doubleString, out double number)) // 変換を試みる
{
Console.WriteLine(number); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("変換に失敗しました"); // 失敗した場合のメッセージ
}
}
}
出力:
123.45
このコードでは、double.TryParse()
を使用して、文字列をdouble型
に変換しています。
decimal.TryParse()の例
using System;
class Program
{
static void Main()
{
string decimalString = "123.456"; // 変換する文字列
if (decimal.TryParse(decimalString, out decimal number)) // 変換を試みる
{
Console.WriteLine(number); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("変換に失敗しました"); // 失敗した場合のメッセージ
}
}
}
出力:
123.456
この例では、decimal.TryParse()
を使用して、文字列をdecimal型
に変換しています。
Convertクラスを使った変換
Convertクラス
は、さまざまな型の変換をサポートしています。
文字列を数値に変換する際にも使用できます。
using System;
class Program
{
static void Main()
{
string numberString = "123"; // 変換する文字列
int number = Convert.ToInt32(numberString); // 文字列を整数に変換
Console.WriteLine(number); // 結果を表示
}
}
出力:
123
このコードでは、Convert.ToInt32()
を使用して、文字列を整数に変換しています。
Convertクラス
は、null
や空の文字列を扱う際に便利です。
数値から文字列への変換方法
数値を文字列に変換する方法は、C#でデータを表示したり、ログに記録したりする際に非常に重要です。
ここでは、ToString()メソッド
、フォーマット指定子、String.Format()メソッド
、そして文字列補間を使った変換方法について解説します。
ToString()メソッドの基本
ToString()メソッド
は、数値を文字列に変換する最も基本的な方法です。
以下にその使用例を示します。
using System;
class Program
{
static void Main()
{
int number = 123; // 変換する整数
string numberString = number.ToString(); // 整数を文字列に変換
Console.WriteLine(numberString); // 結果を表示
}
}
出力:
123
このコードでは、整数123
を文字列に変換しています。
ToString()メソッド
は、すべての数値型で利用可能です。
フォーマット指定子を使った変換
フォーマット指定子を使用することで、数値を特定の形式で文字列に変換できます。
数値フォーマットの種類
フォーマット指定子 | 説明 |
---|---|
C | 通貨形式 |
D | 10進数形式(整数) |
E | 指数形式 |
F | 固定小数点形式 |
N | 数値形式(カンマ区切り) |
P | パーセント形式 |
カスタムフォーマットの使用例
カスタムフォーマットを使用すると、より柔軟な形式で数値を文字列に変換できます。
using System;
class Program
{
static void Main()
{
double number = 1234.5678; // 変換する数値
string formattedString = number.ToString("0.00"); // 小数点以下2桁でフォーマット
Console.WriteLine(formattedString); // 結果を表示
}
}
出力:
1234.57
この例では、"0.00"
というカスタムフォーマットを使用して、小数点以下2桁で数値を文字列に変換しています。
String.Format()メソッドの活用
String.Format()メソッド
は、複数の数値を特定のフォーマットで文字列に変換する際に便利です。
using System;
class Program
{
static void Main()
{
int number = 123; // 変換する整数
double price = 456.78; // 変換する小数
string result = String.Format("商品番号: {0}, 価格: {1:C}", number, price); // フォーマットを指定して文字列に変換
Console.WriteLine(result); // 結果を表示
}
}
出力:
商品番号: 123, 価格: ¥456.78
このコードでは、String.Format()
を使用して、整数と小数を特定のフォーマットで文字列に変換しています。
文字列補間を使った変換
文字列補間は、C# 6.0以降で導入された機能で、より直感的に数値を文字列に変換できます。
using System;
class Program
{
static void Main()
{
int number = 123; // 変換する整数
double price = 456.78; // 変換する小数
string result = $"商品番号: {number}, 価格: {price:C}"; // 文字列補間を使用して文字列に変換
Console.WriteLine(result); // 結果を表示
}
}
出力:
商品番号: 123, 価格: ¥456.78
この例では、文字列補間を使用して、数値を簡潔に文字列に変換しています。
フォーマット指定子も使用可能です。
変換時のエラーハンドリング
数値と文字列の変換を行う際には、エラーが発生する可能性があります。
ここでは、変換時のエラーハンドリングについて、例外処理の基本、TryParse()
を使った安全な変換、そして変換失敗時のデフォルト値設定について解説します。
例外処理の基本
C#では、変換が失敗した場合に例外がスローされることがあります。
例外処理を行うことで、プログラムがクラッシュするのを防ぎ、適切なエラーメッセージを表示することができます。
using System;
class Program
{
static void Main()
{
string numberString = "abc"; // 変換できない文字列
try
{
int number = int.Parse(numberString); // 文字列を整数に変換
Console.WriteLine(number); // 結果を表示
}
catch (FormatException)
{
Console.WriteLine("変換に失敗しました: 文字列の形式が正しくありません"); // 例外発生時のメッセージ
}
}
}
出力:
変換に失敗しました: 文字列の形式が正しくありません
このコードでは、int.Parse()
が失敗した場合にFormatException
をキャッチし、エラーメッセージを表示しています。
TryParse()を使った安全な変換
TryParse()メソッド
を使用すると、例外をスローせずに変換の成否を確認できます。
これにより、より安全に変換を行うことができます。
using System;
class Program
{
static void Main()
{
string numberString = "abc"; // 変換できない文字列
if (int.TryParse(numberString, out int number)) // 変換を試みる
{
Console.WriteLine(number); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("変換に失敗しました"); // 失敗した場合のメッセージ
}
}
}
出力:
変換に失敗しました
この例では、TryParse()
を使用して、変換が成功したかどうかを確認しています。
例外をスローしないため、エラーハンドリングが簡単になります。
変換失敗時のデフォルト値設定
変換が失敗した場合に、デフォルト値を設定することで、プログラムの動作を安定させることができます。
using System;
class Program
{
static void Main()
{
string numberString = "abc"; // 変換できない文字列
int number;
if (!int.TryParse(numberString, out number)) // 変換を試みる
{
number = 0; // 変換失敗時のデフォルト値を設定
}
Console.WriteLine($"変換結果: {number}"); // 結果を表示
}
}
出力:
変換結果: 0
このコードでは、TryParse()
を使用して変換を試み、失敗した場合にはデフォルト値0
を設定しています。
これにより、変換失敗時でもプログラムが正常に動作します。
応用例
数値と文字列の変換は、さまざまな場面で応用されます。
ここでは、ユーザー入力の数値変換、ファイルから読み込んだデータの変換、そしてWeb APIから取得したデータの変換について解説します。
ユーザー入力の数値変換
ユーザーからの入力を数値に変換することは、アプリケーション開発においてよくあるシナリオです。
以下の例では、コンソールから入力された文字列を整数に変換しています。
using System;
class Program
{
static void Main()
{
Console.WriteLine("整数を入力してください:"); // ユーザーに入力を促す
string input = Console.ReadLine(); // ユーザーからの入力を取得
if (int.TryParse(input, out int number)) // 入力を整数に変換
{
Console.WriteLine($"入力された整数: {number}"); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("有効な整数を入力してください"); // 失敗した場合のメッセージ
}
}
}
整数を入力してください:
123
入力された整数: 123
このコードでは、ユーザーが入力した文字列をint.TryParse()
を使って整数に変換し、成功した場合にその値を表示します。
ファイルから読み込んだデータの変換
ファイルから読み込んだデータを数値に変換することも一般的です。
以下の例では、テキストファイルから数値を読み込み、変換しています。
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "data.txt"; // 読み込むファイルのパス
try
{
string fileContent = File.ReadAllText(filePath); // ファイルの内容を読み込む
if (double.TryParse(fileContent, out double number)) // 内容を数値に変換
{
Console.WriteLine($"ファイルから読み込んだ数値: {number}"); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("ファイルの内容を数値に変換できませんでした"); // 失敗した場合のメッセージ
}
}
catch (IOException ex)
{
Console.WriteLine($"ファイルの読み込み中にエラーが発生しました: {ex.Message}"); // ファイル読み込みエラーのメッセージ
}
}
}
ファイルから読み込んだ数値: 123.45
このコードでは、File.ReadAllText()
を使用してファイルの内容を読み込み、double.TryParse()
で数値に変換しています。
Web APIから取得したデータの変換
Web APIから取得したデータを数値に変換することも重要です。
以下の例では、Web APIから取得したJSONデータを解析し、数値を抽出しています。
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
class Program
{
static async Task Main()
{
string url = "https://api.example.com/data"; // Web APIのURL
using (HttpClient client = new HttpClient())
{
try
{
string json = await client.GetStringAsync(url); // Web APIからデータを取得
JObject data = JObject.Parse(json); // JSONデータを解析
if (data["value"] != null && double.TryParse(data["value"].ToString(), out double value)) // 数値を抽出
{
Console.WriteLine($"APIから取得した数値: {value}"); // 成功した場合の結果を表示
}
else
{
Console.WriteLine("APIから取得したデータを数値に変換できませんでした"); // 失敗した場合のメッセージ
}
}
catch (HttpRequestException ex)
{
Console.WriteLine($"APIリクエスト中にエラーが発生しました: {ex.Message}"); // リクエストエラーのメッセージ
}
}
}
}
APIから取得した数値: 678.90
このコードでは、HttpClient
を使用してWeb APIからデータを取得し、Newtonsoft.Json
ライブラリを使ってJSONを解析し、数値を抽出しています。
よくある質問
まとめ
この記事では、C#における文字列と数値の変換方法について、基本的なメソッドの使い方からエラーハンドリング、応用例までを詳しく解説しました。
これにより、数値と文字列の変換に関する理解が深まり、実際のプログラムでの活用方法が明確になったことでしょう。
これを機に、実際のプロジェクトでこれらの変換方法を試し、より安全で効率的なコードを書くことに挑戦してみてください。