C# Substring 文字列を切り出す

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 文字列を置き換えるサンプル

△上に戻る