データ操作

[C#] 文字列から文字数で部分文字列を切り出す(.Substring)

2021年7月23日

文字列から文字数で部分文字列を切り出すには.Substring を使用します。

構文

構文

<対象文字列>.Substring(<切り出す開始位置>, [<切り出す文字数>])

開始文字位置は0から数えるので、例えば3文字目からなら2を指定します。

<切り出す文字数>は省略した場合、文字列末尾までと判断されます。

サンプル

例)文字列を切り出す

//元の文字列
string str = "ABCDEFGHIJ";

//先頭3文字を切り出す
string a = str.Substring(0, 3);
a → "ABC"

//2文字目から3文字を切り出す
string b = str.Substring(1, 3);
b → "BCD"

//3文字目から最後までを切り出す
string c = str.Substring(2);
c → "CDEFGHIJ"

※第2引数(切り出す文字数)が対象文字列の文字数を超えていると例外が発生します。

ダメ例1)文字列切り出しでエラーになる例1

元の文字列を超えるサイズを切り抜こうとしているためエラーになります。

//元の文字列
string str = "ABCDE";

//3文字目から10文字を切り出す
string d = str.Substring(2, 10);
→ 例外発生

「System.ArgumentOutOfRangeException: 'Index and length must refer to a location within the string. '」が発生します。

ダメ例2)文字列切り出しでエラーになる例2

元の文字列を超える位置から切り抜こうとしているためエラーになります。

//元の文字列
string str = "ABCDE";

//10文字目以降を切り出す
string e = str.Substring(10);
→ 例外発生

「System.ArgumentOutOfRangeException: 'startIndex cannot be larger than length of string. '」が発生します。

備考

  • 第2引数を省略すると、文字列の末尾までという意味になります。
  • 第2引数を指定する時は、文字列の長さを超えないようにご注意ください。

-データ操作
-