- 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」が返ってきます。
|
|