1. 概要
前ページまでで説明したもの以外のメソッドをまとめてメモしています。
2. Format 書式指定
とりあえず、
string.Format("ほにゃほにゃ");
で、いきなり書式指定した文字列が書けます。
この場合「string」っていう宣言なしに使えるので便利。
引数がある場合は
string.Format("{0}", 引数1);
のように書きます。
引数は、「{0}」から始まって、シリアルに数字を増やしていきます。
イマドキの言語ですから、引数の型にあわせて良きようにはからって出力してくれます。
書式指定することも可能。
ただし、これまで学んだ「C 言語」の資産は、ほぼぶち壊しです。
必要で、自分が知りたいことだけ書きます。
10進で、ゼロパディングして出力する場合は
string.Format("{0:D2}", 引数1);
て感じで書きます。
「D」が「Decimal」(?)、後ろの「2」は桁数なので、ゼロパディングする数に合わせて書きます。
3. Compare 比較
オーバーロードされる関数は、数多くあるようですが、わたしが一番使うのは
string.Compare(String, String);
ですかな。
2つの文字列を比較します。
「偉大なるマイクロソフトさま」の説明では、「指定した 2 つの String オブジェクトを比較し、それらの相対位置を並べ替え順序で示す整数を返します」って書いてありますが。
わけわかんないですね。
string.Compare(a, b);
とやって、「a」が大きけりゃプラス、「b」が大きけりゃマイナス、同じであれば「0」が返ると思っておくのが理解しやすい。
文字列のからむソートにも使えます。
「if」文等の中にぶちこくときに、ときどき戸惑います。
「int」あたりに比べると、ちょっとわかりにくのでね。
こんな風に覚えます。
using System;
using System.Text.RegularExpressions;
public class String05
{
static public void Main ()
{
int [] intValue = new int[3] { 1, 2, 3 };
string [] strValue = new string[3]{ "1", "2", "3" };
if ((intValue[0] < intValue[1]) && (intValue[1] < intValue[2]))
{
Console.WriteLine(@"["+ intValue[1] +@"] は ["+ intValue[0] +@"] と ["+ intValue[2] +@"] の間にあります");
}
if ((string.Compare(strValue[0], strValue[1]) < 0) && (string.Compare(strValue[1], strValue[2]) < 0))
{
Console.WriteLine(@"["+ strValue[1] +@"] は ["+ strValue[0] +@"] と ["+ strValue[2] +@"] の間にあります");
}
}
}
2つの変数の位置関係と、符号の向きが一致することで覚えようとします。
ちなみに、これを実行すると下記の結果が得られます。
見た目、1行目と2行目が全く同じです。
[2] は [1] と [3] の間にあります
[2] は [1] と [3] の間にあります
4. Replace 置換
オーバロードするものが4つあるようですが、わたしが一番使うのは
string.Replace(string1, string2);
「string」文字内の部分文字列「string1」を部分文字列「string2」に置換します。
5. Length 文字数
「Length」は、メソッドでなく、プロパティです。
バイト数でなく、文字数を表現するのでご注意。
using System;
public class String05
{
static public void Main ()
{
string strgin1 = "12345";
string string2 = "12345";
Console.WriteLine(@"["+ strgin1 +@"] 文字数 ["+ strgin1.Length +@"]");
Console.WriteLine(@"["+ string2 +@"] 文字数 ["+ string2.Length +@"]");
}
}
をコンパイル・リンクして、実行すると下記の結果が得られます。
[12345] 文字数 [5]
[12345] 文字数 [5]