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