文字列の基礎

C#ではstring型という文字列専用のクラスがある。 重要なプロパティとしては、文字列の長さを取得する Length がある。

例.

string word = "May";
Console.WriteLine(word.Length);

実行結果.

3

stringクラスには便利なメソッドがたくさん用意されている。

戻り値の型 使用例 機能
bool text1.Contains(text2); text1の中にtext2が含まれているかどうか判定。
bool text1.StartsWith(text2); text1の初めの文字列がtext2であるかどうか判定。
int text1.IndexOf(text2); text1の中のtext2の位置。
戻り値の型 使用例 機能
string text1.Substring(startIndex); text1のstartIndexにある文字から末尾まで取得。
string text1.Substring(startIndex,length); text1のstartIndexにある文字からlength分取得。
string text1.Insert(startIndex, text2); text1のstartIndex番目にtext2を挿入する。
string text1.Replace(word1,word2); text1に含まれるすべてのword1をword2に置換する。
string text1.ToUpper(); 大文字にする。
string text1.ToLower(); 小文字にする。

注意が必要なのは、どれもインスタンスtext1自体を書き換えることはしないということである。

例.

string word = "abcde";
Console.WriteLine(word);
Console.WriteLine(word.Replace("ab","AB"));
Console.WriteLine(word);

実行結果.

abcde
ABcde
abcde

初めword="abcde"であったが、Replaceを行った次の行で再び表示しても、まったく同じ結果になっている。

Replaceは幅ゼロの文字に置換することもでき、その場合指定した文字列を削除することになる。

例.

string word = "abcde";
Console.WriteLine(word);
Console.WriteLine(word.Replace("ab",""));

実行結果.

abcde
cde

char型配列とstring型の関係

両者は似ているが、まったく同じ型というわけではない。実際、直接代入は両方向で不可となる。 キャストすれば良いというわけでもない。

char型配列からstring型への変換

stringクラスのコンストラクタを利用して変換する。

例.

char[] chars = { 'M', 'A', 'Y' };
string word = new string(chars);
Console.WriteLine(word);

実行結果.

MAY

string型からchar型配列への変換

こちらのほうが簡単。単純にToCharArray()を利用すれば良い。

例.

string word = "MAY";
char[] chars = word.ToCharArray();
foreach (var item in chars)
{
    Console.WriteLine(item);
}

実行結果.

M
A
Y