C# - 文法など - 変換(ToString) - int

 クラウディア
1. 概要
2. 10進
3. 16進
4. 2進
5. string → int

1. 概要

 わたしが、一番使うことの多い、「int」から「string」への変換です。  本ページは、下記のサイトを参考にさせていただきました。
.NET での型の書式設定」
「Convert.ToStringとString.PadLeftを使って、基数と桁数を指定して文字列化する (C#) 

2. 10進

 引数なしで、まんまの 10進値を出力します。  引数で書式を指定することもできるのですが、これが少しややこしい。  詳しくは、参考サイトをご参照ください。  10進数をゼロパディングする際は、文字列で「0」をパディングする文字数指定するか、「D」の後ろに文字数を指定します。  すなわち、2桁のゼロパディングであれば、下記のいずれかになります。

ToString("00");
ToString("D2");
 桁数が少ない場合は、上の例が分かりやすいし、桁数が多くなると、下でないと可読性が下がると思います。

3. 16進

 16進文字列にする場合は、「X」で変換します。

ToString("X8");
 これは、8桁の16進文字列へ変換します。  上記は、「A」~「F」は、大文字になりますが、「X」を小文字にすれば、小文字になります。

   1000 → 1,000
  10000 → 10,000
 100000 → 100,000
1000000 → 1,000,000
 てのも、欲しいですね。  これを実現するのは、下記になります。

ToString("#,0");
 ゼロパディングしないで、右詰めで桁そろえしたいときは、「PadLeft」を使用します。  下記のソースを書いて

using System;

public class String02
{
    static public void Main ()
    {
		int[] array = new int[]{ 1, 10, 100, 1000 };

		foreach (int i in array)
		{
			Console.WriteLine(i.ToString().PadLeft(6));
		}
	}
}
 実行すると下記の結果が得られます。

     1
    10
   100
  1000

4. 2進

 ビット演算の結果を確認したいときなど、2進数で表示したいというときがよくあります。  「.NET Framework 8」以降であれば。

ToString("B");
 という書式が用意されています。  桁数指定をする場合は、前に数字をいれるのは、今までの書式と同じです。  「.NET Framework 8」より前であれば、仕方なく、「System.Convert」というクラスを使用します。  「int」型の「n」という変数を、32桁の2進値で表示するのであれば。

Convert.ToString(n, 2).PadLeft(32, '0')
 「(n, 2)」の部分が、2進への変換。  「PadLeft(32, '0')」の部分が、32桁に足りない、上位の桁を 0 埋めする部分です。

5. string → int

 ついでに、「string」から「int」への変換を。  わたしは、こういう場面が多いので・・・。  64 ビット整数を扱うものとして進めます。  まず、一番お手軽な例は・・・。

Parse(String);
 ですな。これは、手っ取り早い。  引数に文字列を与えると、整数値が返ってきます。  ただし、これ、気を付けなければならないのは、文字列に問題があると、下記のような例外が発生することです。 ・ArgumentNullException 文字列が null ・FormatException 文字列が数値以外 ・OverflowException 最小値~最大値の範囲外  例外を発生させないようにするには少し面倒なものを使用します。

TryParse(String, Int64)
 こちらは、例外なしですが、第一引数に文字列を与えて、第二引数に値が返ってきます。  「Parse」で例外が発生するような場合は、戻り値が「false」になります。  正常に変換された場合は、「true」が返ってきます。
AbemaTV 無料体験