|
文字列変換の基本 |
|
文字列変換は、様々な利用形態があるが、ここでは、基本的な内容だけ対象にします。
主に、Webアプリケーションに利用されるエンコードを対象にします。
暗号化やあまりにも複雑な文字列変換は取り扱いません。
また、使用する言語はC#(.NET Framework 3.5)です。
文字列変換に先立ち、いくつかのクラスとメソッドについて解説します。
NumberFormatInfo クラス |
|
「NumberFormatInfo クラス」と「Byte.ToString(FormatString)」について解説しておきます。
これは、8bitの値であるByteをどのように目に見える形にするかということに主眼を置きます。
Byte値をただの10進数として文字列化する場合には、
{
byte b = 0x80;
string outString = b.ToString();
}
と書けば、一応、10進数として、"128"という文字列が得られます。
しかし、文字数を指定したいときや、16進文字列として取り出したいときなどに利用するのが、
「Byte.ToString(FormatString)」です。
また、"FormatString"を解釈するのが、「NumberFormatInfo クラス」です。
そのため、「NumberFormatInfo クラス」に"FormatString"の書き方が規定されています。
MSDNライブラリを参照する場合には、「NumberFormatInfo クラス」を参照してください。
さて、実際のコーディングとしては、
{
byte b = 0x80;
string outString = b.ToString(x2);
}
と書くと、"x"または"X"は16進数への変換を意味し、その後の"2"は変換後の桁数を示します。この場合、2桁の16進数に変換します。
{
byte b = 0x80;
string outString = b.ToString(d3);
}
と書くと、3桁の数値に変換します。数値が3ケタに満たない場合は、左に"0"を補間します。
詳しい内容は、「標準の数値書式指定文字列」「NumberFormatInfo クラス」で検索して調べてみてください。 |
StringBuilder クラス |
|
String.Textの下にあるクラスで、文字列処理を高速化するために利用します。
使い方は、ほとんど、"string クラス"と一緒ですが、文字列を取り出すために"ToString()"メソッドを使う必要があるところが違います。
また、細かなところで違いがあります。
StringBuilderクラスを利用するためには、StringBuilderクラスを継承したオブジェクトを作成して利用します。
比較してコーディングしてみます。
{
string myStringObject;
System.Text.StringBuilder mySbObject = new System.Text.StringBuilder();
}
と宣言する必要があります。これが、"string"オブジェクトとの最大の違いです。
また、文字列の最後に文字列を追加する場合も方法が異なります。
{
myStringObject += "NewText";
mySbObject.Append("NewText");
}
StringBuilderオブジェクトは、必要な文字列長を最初に確保してから文字列処理をすることができるため、処理内容によっては非常に高速なのです。
文字列変換では、このクラスを使いこなすことは、非常に重要になります。 |
|
|