小数点以下の桁数を指定して文字列を取得する例です。
四捨五入されます。
double value = 0.129; // 小数点以下を2桁にする。結果は0.13。つまり3桁目を四捨五入します。 value.ToString("F2");
小数点以下の桁数を指定して文字列を取得する例です。
四捨五入されます。
double value = 0.129; // 小数点以下を2桁にする。結果は0.13。つまり3桁目を四捨五入します。 value.ToString("F2");
任意の文字の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 );
Lengthプロパティを参照します。
string str = "unko"; int len = str.Length; MessageBox.Show( len.ToString() );
string.Remove()関数を使います。
文字列から指定範囲の文字列を削除します。
範囲は、何文字目~何文字まで、のように
削除を開始する位置の整数インデックスと
削除する文字数の2つを指定します。
最初の1文字目のインデックスは0です。
string str = "un@@@@ko"; MessageBox.Show( str.Remove(2,4) );
文字列の中から指定文字(文字列)を削除します。
Replaceを応用してみました。
string str = "hello unko"; str = str.Replace( "unko", "" ); MessageBox.Show( str );
16進数などの文字列を数値に変換するには
ConvertConvertを利用しましょう。
int num16 = Convert.ToInt32("FF", 16); // 16進数 int num8 = Convert.ToInt32("377", 8); // 8進数 int num2 = Convert.ToInt32("11111111", 2); // 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進数
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") );
任意の桁数分、数値文字列の頭を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) );
Replace関数を使います。
置換前の文字列と、置換後の文字列を指定します。
string str = "0,1,2,3,4,5,6,7,8,9"; // カンマをスラッシュに置換 MessageBox.Show( str.Replace(",", "/") );