【C#入門】文字列の操作について分かりやすいサンプルコードで徹底解説
C#では文字列の中に文字列を挿入したり、文字列を分割したりするように文字列を操作することができます。
文字列のプロパティとメソッド
C#のstring型は.NET FrameworkのSystem.String型のエイリアスであり、
文字列を複数の文字のコレクションとして扱うプロパティやメソッドが用意されています。
覚えておくと便利なものをいくつか紹介します。
break文を使った例を示してみましょう。
このプログラムは、 数値を10回入力して合計を求めますが、負数が入力されたらループを中断します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
static void Main(string[] args) { int n, sum = 0; Console.WriteLine(“整数値を10回入力してください。); Console.WriteLine("途中で負数を入力したら終了します。"); for (int i = 1; i <= 10; i++) { Console.Write(">"); n = int.Parse(Console.ReadLine()); if (n < 0) break; sum += n; } Console.writeLine($"合計値は{sum}です。); } |
Charsプロパティ
Charsプロパティは、配列のように添え字を指定することで、
文字列内の指定した位置にある文字を取得します。
1 2 3 4 5 |
static void StringCharsExample() { string str = "ABC"; char c = str[i]; } |
Lengthプロパティ
Lengthプロパティは、文字列の文字数を取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
static void StringLengthExample() { string str = "ABC", str2 = "あいうえお"; int length1 = str.Length; // length1 = 3 int length2 = str2.Length // length2 = 5(全角文字も1字と数える) } <h3 class="blog_h3">IndexOfメソッド</h3> <p class="blog_p">IndexOfメソッドは、指定した文字(文字列も可)が、文字列内で最初に見つかった位置の0から始まるインデックスを返却します。 見つからなかった場合は-1を返却します。 <pre class="lang:default decode:true "> static void String IndexOfExample() { string str = "ABC", str2 = "1234567"; int index1 = str.IndexOf('B'); // index1 = 1 int index2 = str2.IndexOf("345"); // index2 = 2 } |
Insertメソッド
Insertメソッドは、指定した0から始まるインデックス位置に指定した文字列を挿入して返します。
1 2 3 4 5 |
static void String Insert Example() { string str = "ABC"; string str2 = str.Insert(2, "123"); // str2 = "AB123C" } |
Substringメソッド
Substringメソッドは、部分文字列を取得します。
この部分文字列は、指定し かわから始まるインデックス位置から文末までか、あるいは指定したインデック
ス位置から指定した文字数の文字列です。
1 2 3 4 5 6 |
static void StringSubstringExample() { string str = "1234567"; string str2 = str.Substring(3); // str2 = "4567" string str3 = str.Substring(2, 3); // str3 = "345" } |
Splitメソッド
Splitメソッドは、文字列を指定した区切り文字で分割します。
1 2 3 4 5 6 7 8 9 10 |
static void StringSplitExample() { string s2 = "red.green.blue, white:yellow" string[] W2 = s2.Split(delimiter); foreach (string w in w2) { Console.Write($"[{w}] "); } } |
Splitメソッドの実行結果
カラム
列挙型
列挙型を使うと複数の定数を1つの型として宣言できます。
定数で宣言すると、「const int Sun = 0, Mon = 1; …」のよう宣に言するようになりますが、
列挙型を使うと1つの型として宣言できるので便利でコードの可読性も上がります。
列挙型の値は整数値ですが、Consoleクラスで出力を行うと列挙子をそのまま出力することができます。
• 列挙型
1 2 3 |
アクセス修飾子 enum 列挙名 : データ型 { 列挙子1, 列挙子2, ・・・ } //データ型: char以外の整数型を指定可能。省略するとint型 |
• 列挙型の例題
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Program { // 値を指定しないと0から割り当てられる enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; // 値を指定すると以降順番に1ずつ増加した値が割り当てられる enum DaysJpn { 日 = 1,月,火,水,木,金,土; static void Main(string[] args) { int wed = (int) Days.wed; // キャストして数値を得る // 出力:Wedは3 Console.WriteLine($"{Days.Wed}(+{wed}"); // 出力:月曜日は2 Console.WriteLine($"{DaysJpn.月 曜日は{(int) DaysJpn.月}"); } } |

Soshi
株式会社flyhawkのSoshiです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。
