エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

【C#】文字列を数値に変換できるか調べるTryParseメソッドの使い方

こんにちは。たいら(@tairaengineer2)です。
この記事では、VisualStadioを使って、C# TryParseメソッド の使い方のアウトプット記事です。

前提条件

この記事では、Visual Studio 2017 Communityを使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

TryParseメソッドとは

TryParseメソッドとは、引数に与えられた文字列が数字に変換できるかどうかを判定するメソッドです。
変換できたときはtrue、できなかったときはfalseを返します。
例えば、int型に変換できるかどうか判定したいときの書き方は

bool [判定結果] = int.TryParse([変換できるかどうか判定したいstring型変数], out [変換できたときに代入するint型変数]);

というように書きます。

TryParseメソッドのなにが便利かと言いますと、例外が発生しないことです!
たとえばstring型で"aaa"という文字列をint型に変換しようとします。

int.parse("aaa")

すると、"aaa"はint型に変換できないので例外が発生します。
例外処理するのは非常にめんどくさい(;'∀')
でも、TryParseメソッドを使うと返ってくるのはbool型
しかも、もし型変換できた場合、代入もしてくれるというとても便利なメソッドなんです!

では、早速TryParseメソッドを使ってみましょう!!

TryParseメソッドを解説するプログラムの概要

コンソールに、TryParseメソッドで変換できた数字を表示させるプログラムを作ります。
画面は作りません。

コンソールを表示させる新規プロジェクトの作り方

TryParseメソッドのプログラムを解説する前に、コンソールを表示させる新規プロジェクトの作成を解説します。
コンソールで表示させるためには、プロジェクトの作成肝心です。

VisualStadioを開きます。

f:id:Tairax:20181002211254p:plain

これが初期ページです。
新しくプロジェクトを作成するためには

f:id:Tairax:20181002213824p:plain

左上の「ファイル」「新規作成」「プロジェクト」の順番でクリックしていきます。

f:id:Tairax:20181002212139p:plain

このように新しいプロジェクト作成するための画面がポップアップします。

クリックしていくのがめんどくさい人は、[Ctrl]キー+[Shift]キー+[N]キーを押すと、一気に上の新しいプロジェクト作成画面に行けます。

C#で、コンソールを表示させるためのプロジェクトは

f:id:Tairax:20181002212446p:plain

[Visual C#]の中にある、[コンソールアプリ(.NET Framework)]を選びます。
名前の欄は、プロジェクトを選ぶと自動で名前が書かれます。
もちろん、あなたの好きなプロジェクト名にしてOKです!

[コンソールアプリ(.NET Framework)]を選んだ状態で、右下にある[OK]ボタンをクリック。

f:id:Tairax:20181002212827p:plain

プロジェクトが新しく作成され、プログラムを書く準備ができました!

TryParseメソッドを使うC#プログラム

新しくプロジェクトを作った時に、自動で作られた[Program.cs]を使いましょう。
TryParseメソッドを使って、 コンソールに表示させるプログラムは下記の通りです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // int.TryParseで判定する変数
            string strIntJudge = "3";
            int strIntParse = -1;

            // 文字列がint型に変換できるか判定
            if (int.TryParse(strIntJudge, out strIntParse))
            {
                Console.WriteLine("{0}はint型{1}に変換できます。", strIntJudge, strIntParse);
            }
            else
            {
                Console.WriteLine("{0}はint型{1}に変換できません。", strIntJudge, strIntParse);
            }

            // double.TryParseで判定する変数
            string strDoubleJudge = "文字列";
            double strDoubleParse = -1.2;

            // 文字列がdouble型に変換できるか判定
            if (double.TryParse(strDoubleJudge, out strDoubleParse))
            {
                Console.WriteLine("{0}はdouble型{1}に変換できます", strDoubleJudge, strDoubleParse);
            }
            else
            {
                Console.WriteLine("{0}はdouble型{1}に変換できません。", strDoubleJudge, strDoubleParse);
            }
        }
    }
}

string型から、int型とdouble型に変換できるか判定します。

ソリューションをビルドする

Visual Stadioでは、プログラムを作ったから即実行!
ということはできません。
ソリューションビルドするということが必要です。

やり方は

f:id:Tairax:20181006085006p:plain

上のバーにある、「ビルド」「ソリューションのビルド」という順番でクリックしていきます。

f:id:Tairax:20181006085318p:plain

すると、ビルドが開始されます。
ビルドが終わるまで、しばし待ちます。

f:id:Tairax:20181006084604p:plain

ビルドが終わると、上の画像のようにビルドの結果が表示されます。

結果を抜き出すと

========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========

ビルドの結果は、それぞれの単語の前の数字を見ます。
上の画像のビルドした結果は

正常終了 1
失敗 0
更新不要 0
スキップ 0

という意味になります。
なので、正常終了しているということです。

クリックしていくのがめんどくさい人は、[Ctrl]キー+[Shift]キー+[B]キーを押すと、ビルドが始まります。

実行

ここまでやって、ようやく実行できます。
実行するためには

f:id:Tairax:20181006085717p:plain

上のバーの「デバッグ」「デバッグなしで開始」をクリックします。

f:id:Tairax:20181006111022p:plain

3はint型3に変換できます。
文字列はdouble型0に変換できません。
続行するには何かキーを押してください . . .

TryParseメソッド で文字列を判定できました!

int型に変換できたので、strIntParse3が入り、trueで返ってきてます。
double型は変換できなかったので、strDoubleParse0が入り、falseで返ってきてます。

判定結果を表示した次の行に

続行するには何かキーを押してください...

と表示されてますが、これはバグではありません。
プログラムが最後まで実行された後に、ユーザーの入力待ち状態になると自動的に表示される文言です。

まとめ:TryParseメソッドを使いこなそう!

以上がVisual Stadioを使って、C#でTryParseメソッドの解説記事です。
いかがでしたか?

TryParseメソッドを使うと、文字列変換処理がめちゃくちゃ楽になりますね♪
使えるようになりましょう!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

ほかにもC#勉強記事を書いてます。
よければご参考ください。

【C#】コンソールでHellow,Worldを表示させる

【C#】string.Formatと文字列補完を解説します

【C#】コード:IDE1006、説明:名前指定の規則違反: これらの単語は、大文字で始まらなければなりません、が出たときの対処方法