C#のSubstringで文字列を切り出すサンプルです。
目次
| サンプル | 文字列の一部を切り出す(引数2つ) | 
| 変数がnullの場合の対処法(?) | |
| 文字列の途中から最後までを切り出す(引数1つ) | |
| 文字列の後ろから切り出す(Length) | 
文字列の一部を切り出す(引数2つ)
| public String Substring(int 開始位置, int 長さ); | 
- 1つめの引数の「開始位置」から2つめの引数の「長さ」で文字を返します。
- 最初の1文字目の位置は0です。
- Stringクラスのメソッドです。
using System;
class Test1
{
	static void Main()
	{
		string str1 = "あいうえお";
		Console.WriteLine(str1.Substring(0, 1)); // あ
		Console.WriteLine(str1.Substring(1, 1)); // い
		Console.WriteLine(str1.Substring(2, 1)); // う
		Console.WriteLine(str1.Substring(0, 3)); // あいう
		Console.WriteLine(str1.Substring(2, 2)); // うえ
		string str2 = "abcde";
		Console.WriteLine(str2.Substring(0, 1)); // a
		Console.WriteLine(str2.Substring(1, 1)); // b
	}
}9~11行目は、指定の位置から1文字取得しています。
13行目は、最初の文字「あ」から3文字取得しています。
14行目は、途中にある文字の「う」から2文字取得しています。
16行目は、半角文字の場合です。
変数がnullの場合の対処法(?)
using System;
class Test1
{
	static void Main()
	{
		string str3 = null;
		//Console.WriteLine(str3.Substring(0, 1)); // nullなのでエラー
		Console.WriteLine(str3?.Substring(0, 1)); // エラーにならない
	}
}7行目は値がnullです。
8行目はnullなのでエラーになります。
9行目は、変数の後に?があります。この場合出力なしでエラーになりません。
文字列の途中から最後までを切り出す(引数1つ)
| public string Substring (int 開始位置); | 
- 1つめの引数の「開始位置」から最後までの文字を返します。
using System;
class Test1
{
	static void Main()
	{
		string a = "あいうえお";
		Console.WriteLine(a.Substring(1)); //いうえお
		Console.WriteLine(a.Substring(2)); //うえお
		Console.WriteLine(a.Substring(3)); //えお
		Console.WriteLine(a.Substring(4)); //お
	}
}9~12行目は、指定した位置の文字から最後の文字まで取得しています。
文字列の後ろから切り出す(Length)
文字列の後ろから切り出すサンプルです。Lengthプロパティを使用します。
using System;
class Test1
{
	static void Main()
	{
		string a = "あいうえお";
		Console.WriteLine(a.Substring(a.Length - 1));  // お
		Console.WriteLine(a.Substring(a.Length - 2)); // えお
		Console.WriteLine(a.Substring(a.Length - 3)); // うえお
	}
}9~11行目は、Lengthプロパティで文字列の長さを取得し、そこから引くことで後ろから文字列を取得しています。
以下はMicrosoftのSubstringメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.substring?view=netframework-4.7.2
関連の記事
C# Split 文字列を分割して配列にする
C# IndexOf 文字列の位置を取得する
C# Replace 文字列を置き換えるサンプル
