6月 13

ASCII文字コードを取得する

任意の文字のACSII文字コードを取得する方法です。
C#,VB,VCそれぞれの方法もありますし
.NET Frameworkを使った方法にも何通りかあるようです。

System.Text.Encoding.GetEncoding C#,VBの例参照
System.Text.Encoding.ASCII VCの例参照

あたりが参考になるかと。

C#

// 文字列中の任意の位置の文字コードを取得
// charをintへ暗黙キャストする方法
string str = "hello";
int code = str[0];    // 先頭の1文字のコードを取得
MessageBox.Show( code.ToString() );

// 文字コードを取得
// これもchar文字をintへ暗黙キャスト
code = 'a';
MessageBox.Show( code.ToString() );

// System.Text.Encoding.GetEncodin を使った方法
// GetEncodingには色んな使い方がありますが
// 文字列を一気にエンコードして、結果を配列で取得する例です↓
byte[] b = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes("abcde");
str = "";
foreach( byte data in b )
    str = str + string.Format("{0} ", data);
MessageBox.Show( str );

VB.NET

'VBであればAscが便利です
Dim code As Integer

code = Asc("a")
MessageBox.Show(code.ToString())

'System.Text.Encoding.GetEncodin を使った方法
'GetEncodingには色んな使い方がありますが
'文字列を一気にエンコードして、結果を配列で取得する例です↓
Dim b(5) As Byte
b = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes("abcde")

Dim i As Byte
Dim str As String

For Each i In b
    str = str + String.Format("{0} ", i)
Next

MessageBox.Show(str)

VC.NET

// 文字列中の任意の位置の文字コードを取得
//char p[] = { 'a', 'b', 'c' }; こっちでもOK。使いやすいほうでどうぞ。
char *p = "abc";
MessageBox::Show( String::Format("{0}",p[0].ToString()) );

// こんな方法もあります。
// 文字列を一気にエンコードして、結果を配列で取得する例です↓
System::Text::Encoding *ascii = System::Text::Encoding::ASCII;
Byte b[] = ascii->GetBytes("abc");

String *str = "";
for ( int i = 0; i < b->Length; i ++ )
    str = str->Concat( str, String::Format("{0} ", b[i].ToString()) );
MessageBox::Show( str );
6月 13

指定範囲の文字列を削除

string.Remove()関数を使います。

文字列から指定範囲の文字列を削除します。
範囲は、何文字目~何文字まで、のように
削除を開始する位置の整数インデックスと
削除する文字数の2つを指定します。

最初の1文字目のインデックスは0です。

string str = "un@@@@ko";
MessageBox.Show( str.Remove(2,4) );
6月 13

16進数、8進数、2進数を文字列へ取得

書式文字列にXを指定することで16進数文字列を取得します。
8進数、2進数はConvertを利用しましょう。

string value;
// String.Formatを利用する方法
value = String.Format("{0:X}", 100);

// int型のToStringを利用する方法
int a = 100;
value = a.ToString("X");

// Convertを利用する方法
value = Convert.ToString(100, 16); // 16進数
value = Convert.ToString(100,  8); //   8進数
value = Convert.ToString(100,  2); //   2進数
6月 13

文字列中に文字列を挿入

Insert()関数を使います。
挿入位置は数値で指定します。
最初の1文字目のインデックスは0からはじまります。

文字列hoの、hの後ろに
文字列ellを挿入して、helloを作るサンプルです。

string str = "ho";

// 文字列の挿入
MessageBox.Show( str.Insert(1, "ell") );

// 応用:oを検索し、その位置へ挿入
MessageBox.Show( str.Insert(str.IndexOf("o"), "ell") );
6月 13

頭を0やスペースで埋める(パディング)

任意の桁数分、数値文字列の頭を0で埋めます。
(パディング)

例えば、123を5桁でパディングすると
00123となります。

なお、指定桁数を超える数値を指定した場合
頭に0は付きません。
例:12345を5桁でパディングすると12345となります。。

また、ゼロが不要な場合はスペースで埋めることも可能です。

// 123を5桁でパディング  "00123"となる
MessageBox.Show( string.Format("{0:00000}", 123) );

// 123を5桁でパディング  "  123"となる
MessageBox.Show( string.Format("{0,5}", 123) );

// 16進数6桁でパディング "00007B"となる
MessageBox.Show( string.Format("{0:X6}", 123) );
6月 13

文字列の置換

Replace関数を使います。
置換前の文字列と、置換後の文字列を指定します。

string str = "0,1,2,3,4,5,6,7,8,9";

// カンマをスラッシュに置換
MessageBox.Show( str.Replace(",", "/") );