C#プチリファレンス

C# 文字列操作

文字列操作に関するサンプルです。

string主要メソッド

【stringのメソッド・プロパティ】
メソッド説明使用例
Length文字数を取得するstring str = "あいう";
str.Length;
→3
StartsWith(string a)指定した文字で始まるかチェックするstring str = "ABCDEF";
str.StartsWith("ABC");
→true
EndsWith(string a)指定した文字で終わるかチェックするstring str = "ABCDEF";
str.EndsWith("XYZ");
→false
CompareTo(string a);文字列の大小比較をする
 a方が小さい→1
 aの方が大きい→-1
 同じ→0
string str = "20141020";
str.CompareTo("20141021");
→ -1
Equals(string a)値が同じかどうか比較する
( == で比較しても同じ)
string str = "abc";
str.Equals("abc");
→true
ToUpper()大文字に変換した値を返す"abc".ToUpper();
→"ABC"
ToLower()小文字に変換した値を返す"ABC".ToLower();
→"abc"
Replace(string a, string b)文字列を置換するstring str = "abcabcabc";
str.Replace("a","A");
→"AbcAbcAbc"
Insert(int i, string a)指定した位置iに文字列aを挿入するstring str="あいうえお";
str.Insert(1, "x");
→あxいうえお
Remove(int i, int j)指定した位置iからj文字削除するstring str="あいうえお";
str.Remove(1, 2);
→あえお
Substring(int a)指定した位置aから後ろの文字列を取得するstring str="あいうえお";
str.Substring(2);
→うえお
Substring(int a, int b)指定した位置aからb文字取得するstring str="あいうえお";
str.Substring(1,2);
→いう
string.Empty空文字を取得するstring str = string.Empty;
→""
string.Concat文字列を結合するstring str = string.Concat("A", "B");
→"AB"
Trim()文字列の前後の空白を削除するstring str=" ABC ";
str.Trim();
→"ABC"
TrimStart()文字列の前の空白を削除するstring str=" ABC ";
str.TrimStart();
→"ABC "
TrimEnd()文字列の後の空白を削除するstring str=" ABC ";
str.TrimEnd();
→" ABC"
ToList()文字列をリスト型(List<char>)にするstring str="ABC";
str.ToList();
→'A', 'B', 'C'
ToArray()文字列を配列(char[])にするstring str="ABC";
str.ToArray();
→{'A', 'B', 'C'}

エスケープシーケンス

主要なエスケープシーケンス一覧です。

【エスケープシーケンス】
表記意味
\rCR
\nLF
\r\nCR+LF(Windowsの改行コード)
\"ダブルクオーテーション
\'シングルクオーテーション
\\
\tタブ
\0null
(例)「"\'hoge'\"」 を文字列指定する場合
string str = "\"\\\'hoge\'\\"";
(例)「"\'hoge'\"」 を@指定で文字列指定する場合
string str = @""\'hoge'\"";

※先頭に@マークをつけるとエスケープ処理をしなくてもOKです。

nullや空文字の判定

C#ではnullや空文字を判定するのに便利なメソッドが用意されています。

メソッド意味
IsNullOrEmptynullまたは空文字かどうか判定する
IsNullOrWhiteSpacenullまたは空文字または空白のみの文字列かどうか判定する
例)nullまたは空文字かどうか判定する
bool b = string.IsNullOrEmpty(str);
【例】
"aa" → false null → true ""(空文字) → true " "(半角ブランク) → false " "(全角ブランク) → false
例)nullまたは空文字または空白のみの文字列かどうか判定する
bool b = string.IsNullOrWhiteSpace(str);
【結果】
"aa" → false null → true ""(空文字) → true " "(半角ブランク) → true " "(全角ブランク) → true

文字列を結合する

string型とstring型を結合するサンプルです。

例)Concatメソッドで結合する
string str1 = "A";
string str2 = "B";
string str3 = "C";
string str4 = "D";
string strAdd = string.Concat(str1, str2);
string strAdd = string.Concat(str1, str2, str3);
string strAdd = string.Concat(str1, str2, str3, str4);
【結果】
strAdd1 → "AB" strAdd2 → "ABC" strAdd3 → "ABCD"

※Concatメソッドは、4個までの引数に対応しています。


文字列を高速に結合するにはStringBuilderを利用します。

例)StringBuilderで結合する
StringBuilder sb = new StringBuilder();
sb.Append("abc");
sb.Append("def");
sb.ToString();
【結果】
"abcdef"

カンマで分割する

カンマ区切りの文字列を分割して配列に変換するサンプルです。

例)
string str = "東京,大阪,名古屋";
string[] sp = str.Split(',');
【結果】
sp[0] → "東京" sp[1] → "大阪" sp[2] → "名古屋"

※Splitの引数にカンマ以外の文字列を指定すれば、カンマ以外での分割も可能です。

※配列からカンマ区切り文字列を生成したい場合は→配列ページの「配列からカンマ区切りの文字列を生成する」を参照ください。

埋め込み表示

指定した場所に文字列を埋め込んで表示するサンプルです。

例)
string name = "北海道";
string code = "01";
string str = string.Format("{0}({1})", name, code);
【結果】
str → "北海道(01)"

文字列が含まれるか判定する

指定した文字列が含まれるか判定するサンプルです。

例)
string str = "ABCDEFG";
bool b1 = str.Contains("CD");
bool b2 = str.Contains("cd");
【結果】
b1 → True b2 → False

n番目の文字を取得する

n番目の文字を取得するサンプルです。

例)
//2番目の文字を取得する
string str = "ABCDE";
char c = str[1];

※インデックス番号は0から始まるので、2番目を指定したい場合は1を指定します。

【結果】
c → 'B'

文字列をバイト配列に変換する

例)文字列 "ABCDE"(Shift-JIS) をバイト配列にする

例)
string a = "ABCDE";
byte[] b = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes(a);
【結果】
[65][66][67][68][69]

バイト配列を文字列に変換する

例)バイト配列 { 65, 66, 67, 68, 69 }(Shift-JIS) を文字列にする
byte[] b = { 65, 66, 67, 68, 69 };
string a = System.Text.Encoding.GetEncoding("Shift_JIS").GetString(b);
【結果】
ABCDE

指定した文字をTrimする

例)文字列の前後にある'X'と'Y'をTrimする
string str = "XYXYXYXYXAAAAAXYXYXYXY";
string res = str.Trim('X', 'Y');
【結果】
res → "AAAAA"

使用環境の改行コードを取得する

例)使用環境の改行コードを取得する
string str = Environment.NewLine;

クラス名を文字列で取得する

例)SampleClassクラスのクラス名を文字列で取得する
string str = typeof(SampleClass).Name;
【結果】
str → "SampleClass"

MD5ハッシュ文字列を取得する関数

例)引数の文字列をMD5ハッシュ文字列にして返すメソッド
using System.Security.Cryptography;
using System.Text;

public static string GetMD5String(string str)
{
    StringBuilder sb = new StringBuilder();

    byte[] strByte = Encoding.GetEncoding("Shift_JIS").GetBytes(str);  //Shift-JIS専用です

    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
    foreach (byte b in md5.ComputeHash(strByte))
    {
        sb.Append(b.ToString("x2"));
    }

    return sb.ToString();
}
【使用例】
string aa = GetMD5String("あいうえお");
【結果】
"ad7cf5ce5313f8b3fc59d626b9aad653"

大文字小文字を区別なく比較する

文字列の大文字・小文字を区別なく比較するサンプルです。

例)
string str1 = "HOGE";
string str2 = "hoge";
bool b = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);
【結果】
b → true
ToTop