文字列の操作でよく使うプロパティ、メソッドをまとめました。
他にもあれば、どんどん追記していきます。
文字列の長さを取得する
Lengthプロパティ
文字列の長さ(文字数)を取得するには、Lengthプロパティを使用します。
string str = "value";
// length = 5
int length = str.Length;
文字列内に指定の文字(列)が含むかどうか、判定する
Containsメソッド
文字列内に指定の文字、または文字列が含まれているか判定するためには、Containsメソッドを使用します。
string str1 = "こんにちは。";
// 引数 string型
if (str1.Contains("ちは"))
Console.WriteLine("ちは が含まれています。");
// 引数 char型
if (str1.Contains('に'))
Console.WriteLine("に が含まれています。");
ちは が含まれています。
に が含まれています。
ちなみに、IndexOfメソッドでも確認することができます。
文字列に含まれている文字(列)の位置を取得することができます。
含まれていない場合は”-1”が戻り値として返されるので、0以上の条件で検索をかけています。
string str1 = "こんにちは。";
// 引数 string型
if (str1.IndexOf("ちは") >= 0)
Console.WriteLine("ちは が含まれています。");
// 引数 char型
if (str1.IndexOf('に') >= 0)
Console.WriteLine("に が含まれています。");
ちは が含まれています。
に が含まれています。
StartsWithメソッド
先頭が指定の文字列かどうかを判定には、StartsWithメソッドを使用します。
3.の例では、第2引数にtrueを設定することで大文字・小文字を考慮せずに判定することができます。
string str = "Program Test Hello";
if (str.StartsWith("Prog"))
Console.WriteLine("1.先頭文字列が一致します。");
if (str.StartsWith("PROG"))
Console.WriteLine("2.先頭文字列が一致します。");
if (str.StartsWith("PROG", true, CultureInfo.CurrentCulture))
Console.WriteLine("3.先頭文字列が一致します。");
1.後頭文字列が一致します。
3.後頭文字列が一致します。
EndWithメソッド
先頭が指定の文字列かどうかを判定には、EndWithメソッドを使用します。
3.の例では、StartWithメソッドと同様に大文字・小文字を考慮することなく、判定することができます。
string str = "Program Test Hello";
if (str.EndsWith("Hello"))
Console.WriteLine("1.後頭文字列が一致します。");
if (str.EndsWith("HELLO"))
Console.WriteLine("2.後頭文字列が一致します。");
if (str.EndsWith("HELLO", true, CultureInfo.CurrentCulture))
Console.WriteLine("3.後頭文字列が一致します。");
1.後頭文字列が一致します。
3.後頭文字列が一致します。
文字列がnullか空文字か判定する
IsNullOrEmptyメソッド
文字列がnull、もしくは空文字かを調べるにはStringクラスのIsNullOrEmptyメソッドを使用します。
if (string.IsNullOrEmpty(str))
Console.WriteLine("null もしくは 空文字です。");
Emptyプロパティ
文字列がnullでないことが確実であれば、Emptyメソッドで空文字かどうかを判定することもできます。また、Emptyメソッドの代わりに””で判定しても問題ありません。
if (str == string.Empty)
Console.WriteLine("空文字です。");
// ""でもOK
if (str == "")
Console.WriteLine("空文字です。");
IsNullOrWhiteSpaceメソッド【.Net Framework4.0以降】
.Net Framework 4.0以上の場合、IsNullOrEmptyメソッドで空白のみの文字列も判定することができます。
// null、""、" "(半角スペース)、 " "(全角スペース)がtrueで返される
if (string.IsNullOrEmpty(str))
Console.WriteLine("null もしくは 空文字 もしくは 空白の文字列です。");
文字列の一部を取り出す方法
SubStringメソッド
文字列に含まれている一部分を取り出すにはSubStringメソッドを使用します。
第1引数:取り出し開始位置
第2引数:取り出し文字数(省略で開始位置から最後まで取得)
string str = "Program Test Hello";
// 0バイト目から7文字分取り出す
Console.WriteLine(str.Substring(0, 7));
// 8バイト目から4文字分取り出す
Console.WriteLine(str.Substring(8, 4));
// 13バイト目から最後まで取り出す
Console.WriteLine(str.Substring(13));
Program
Test
Hello
文字の位置といえば、IndexOfメソッドですね!
このように使うこともできます。
string str = "Program Test Hello";
string getStr = "Test";
int index = str.IndexOf(getStr);
Console.WriteLine(str.Substring(index, getStr.Length));
処理内容の説明です。
1行目:処理する文字列
2行目:取得する文字列
3行目:”Program Test Hello”から、”Test”の位置を取得し、index変数に格納
5行目:Substringメソッドでindex変数の位置からgetStrのLength分を取り出し、コンソールに出力
まとめ
stringクラスのプロパティやメソッドについて、ご紹介いたしました。
文字列操作の手段としてさまざまありますので、ぜひ参考にしてみてください。