C#での文字列の切り出し方法について詳しく解説していきます。

- システム
エンジニア - 文字の切り出し方法に興味があるのですが実際どんな方法があるのでしょう?
- プロジェクト
マネージャー - 関数を利用した切り出し方法をみていきましょう。
C#での文字列切り出しについて
今回は、C#での文字列の切り出し方法について説明します。
VB.NETでは Left, Mid, Right などの関数が用意されており、「先頭からN文字切り出す」などの文字列操作ができ、C#には Left, Mid, Right 関数はないので、その代わりにSubstring関数などを使用します。
C#での文字列切り出し方法に興味のある方は是非、参考にしてみてはいかがでしょうか。
先頭からN文字切り出す(VB.NETのLeft関数相当)
文字列の先頭からN文字分を切り出せます。
VB.NETではLeft関数で先頭からN文字切り出せますが、C#ではSubstring関数を使用します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
string org = "あいうえお";
string str1 = org.Substring(0, 3);
string str2 = org.Substring(0, 4);
//string str3 = org.Substring(0, 6); // ArgumentOutOfRangeExceptionが発生する
System.Console.WriteLine(str1); // あいう
System.Console.WriteLine(str2); // あいうえ
|
実行結果は以下のようになります。
1
2
|
あいう
あいうえ
|
VB.NETのLeft関数と同じ挙動です。
VB.NETでは「Strings.Left(org, 3)」のように記述します。
Substring関数では、文字数よりも大きな値を指定すると、ArgumentOutOfRangeExceptionが発生します。
また、VB.NETのLeft関数では、文字数よりも大きな値を指定しても例外は発生せずに文字列全体を取得できます。
このように、C#では文字列の先頭からN文字分を切り出せます。
先頭からN文字目を切り出す
先頭からN文字目を切り出せます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
string org = "あいうえお";
string str1 = org.Substring(1, 1);
string str2 = org.Substring(2, 1);
System.Console.WriteLine(str1); // い
System.Console.WriteLine(str2); // う
|
実行結果は以下のようになります。
1
2
|
い
う
|
Substring()はインデックスでアクセスするため、1文字目はインデックス0、2文字目はインデックス1となります。
Substring(1, 1)とすることで、2文字目から1文字分(つまり2文字目のみ)を切り出すことができます。
このように、C#では先頭からN文字目を切り出せます。
末尾からN文字を切り出す
文字列の末尾から、N文字分を切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
string org = "あいうえお";
string str1 = org.Substring(org.Length - 2);
string str2 = org.Substring(org.Length - 3);
// string str3 = org.Substring(org.Length - 6); // ArgumentOutOfRangeExceptionが発生する
System.Console.WriteLine(str1); // えお
System.Console.WriteLine(str2); // うえお
|
実行結果は以下のようになります。
1
2
|
えお
うえお
|
Lengthメソッドで文字列長を取得できます。”文字列長 – 2″とすることで、末尾2文字を切り出しています。
このように、文字列の末尾からN文字分を切り出せます。
中ほどからN文字を切り出す
文字列の中ほどから、N文字を切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = "あいうえお";
string str1 = org.Substring(1, 3);
System.Console.WriteLine(str1); // いうえ
|
実行結果は以下のようになります。
1
|
いうえ
|
2文字目から3文字分を切り出しています。
このように、文字列の中ほどからN文字切り出せます。
先頭N文字以外を切り出す
文字列の先頭N文字以外を切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = "あいうえお";
string str1 = org.Substring(2);
System.Console.WriteLine(str1); // うえお
|
実行結果は以下のようになります。
1
|
うえお
|
このように、文字列の先頭N文字以外を切り出せます。
末尾N文字以外を切り出す
文字列の末尾N文字以外を切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = "あいうえお";
string str1 = org.Substring(0, org.Length -2);
System.Console.WriteLine(str1); // あいう
|
実行結果は以下のようになります。
1
|
あいう
|
VB.NETでは、Strings.Left(org, Len(org) -2)のように記述します。
Left関数と同じ挙動になります。
文字列の長さは、”文字列.Length”でわかります。
このように、文字列の末尾N文字以外を切り出せます。
指定した文字までを切り出す
文字列の指定した文字までを切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = "あいうえお";
string str1 = org.Substring(0, org.IndexOf("う"));
System.Console.WriteLine(str1); // あい
|
実行結果は以下のようになります。
1
|
あい
|
IndexOf()で、指定文字が含まれるインデックスを取得できます。
取得したインデックスまでの文字列を切り出すことで、指定した文字までを取得できます。
指定した文字以降を切り出す
指定した文字以降を切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = "あいうえお";
string str1 = org.Substring(org.IndexOf("う"));
System.Console.WriteLine(str1); // うえお
|
実行結果は以下のようになります。
1
|
うえお
|
このように、指定した文字以降を切り出せます。
空白を除いて切り出す
C#ではTrim()を使用して、空白を除いて切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = " あいうえお ";
string str1 = org.Trim();
System.Console.WriteLine(str1); // あいうえお
|
実行結果は以下のようになります。
1
|
あいうえお
|
ここでは紹介しませんが、先頭の空白のみ削除したり、末尾の空白のみ削除して切り出す方法もあります。
このように、C#ではTrim()を使用して、空白を除いて切り出せます。
置換して切り出す
C#ではReplace()を使用して、文字列を置換して切り出すことができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
string org = "あいうえお";
string str1 = org.Replace("うえお", "");
System.Console.WriteLine(str1); // あい
|
実行結果は以下のようになります。
1
|
あい
|
置換には正規表現を使うこともできます。
このように、C#ではReplace()を使用して、文字列を置換して切り出せます。
- システム
エンジニア - 文字列を置き換えた切り出し方法もあるのですね。
- プロジェクト
マネージャー - 文字の切り出し方法には様々な関数を用います。実際に書いてみて理解を深めていきましょう。
C#での文字列の切り出し方法について知ろう
いかがでしたでしょうか。VB.NETでは Left, Mid, Right などの関数が用意されており、「先頭からN文字切り出す」などの文字列操作ができます。
C#には Left, Mid, Right 関数はなく、その代わりにSubstring関数などを使用します。ぜひご自身でソースコードを書いて、さらに理解を深めていきましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)