本記事では、C#で数値を文字列に変換する方法と文字列を数値に変換する方法を紹介します。
数値を文字列に変換する
数値を文字列に変換したい場合、ToStringメソッドを使用しましょう。
例えばint型の値をstring型に変化する場合以下のように書くことができます。
int nNum = 5;
string strTemp = nNum.ToString();
また、ToStriongはint型だけではなく、uint、doubleなど様々な方に使うことができます。
double型の値をsttring型に変換する例を以下に示します。
double dNum = 3.14;
strTemp = dNum.ToString();
文字列を数値に変換する
Parseメソッドを使った方法
最初に文字列を数値に変換する方法としてParseメソッドを使った方法を紹介します。
文字列をint型の値に変換した場合、以下のように書くことができます。
string strNum = "10";
int nNum = int.Parse(strNum);
Parseメソッドも先ほど紹介したToStringメソッドのようにuin型やdouble型など様々な型への変換に使うことができます。
string strNum = "3.14";
double dNum = double.Parse(strNum);
Parseメソッドの欠点として数字以外の文字列を引数として与えると例外が発生します。
例えば以下のような場合例外が発生します。
string strNum = "aaa";
int nNum = int.Parse(strNum);
この例外を防ぐ手段としてTryParseメソッドを使いましょう。
TryParseメソッドは第1引数に変換したい文字列、第2引数に文字列を変換した値を格納する変数を渡します。
また戻り値は成功した場合はTrue、関数内で例外が発生した場合はFalseが返ってきます。
TryParseメソッドで文字列をint型に変換した例を以下に示します。
int nNum = 0;
string strNum = "10";
bool bRet = int.TryParse(strNum, out nNum);
以下のように数字以外の文字列を与えても先ほどのParseメソッドのように例外は発生しません。
int nNum = 0;
string strNum = "aaa";
bool bRet = int.TryParse(strNum, out nNum);
Convertクラスを使った方法
文字列を数値に変換する方法としてParseメソッドの他にConvertクラスを使った方法があります。
Convertクラスを使って文字列をint型に変換するコードは以下の通りです。
string strNum = "10";
int nNum = Convert.ToInt32(strNum);
ちなみにConvertクラスに数値以外の文字列を与えた場合、Parseメソッドと同じように例外が発生します。
string strNum = "aaa";
int nNum = Convert.ToInt32(strNum);
これだけ見るとConvertクラスはParseメソッドと変わらないように見えますが、Convertクラスは引数としてnullが与えられても例外が発生しないとう特徴があります。
以下のように引数にnullを与えた場合、0が返ってきます。
string strNum = null;
int nNum = Convert.ToInt32(strNum);
まとめ
数値を文字列に変換したい場合、ToStringメソッドを使いましょう。
文字列を数値に変換する方法はParseメソッド、TryParseメソッド、Convertクラスの三つの方法がありました。
数値以外の文字列が与えられる可能性がある場合は、例外に強いTryParseメソッドを使いましょう。
それ以外の場合は、nullが引数として入力される可能性があるかどうかでParseメソッドとConvertクラスを使い分けましょう。