C#の文字列型(string)を完全解説!連結・分割・検索の方法を紹介
生徒
「C#で文字を扱うには、どんな型を使えばいいですか?」
先生
「C#では、文字列を扱うにはstring型を使います。文章や名前など、文字の集まりを扱うときに使いますよ。」
生徒
「そのstringって、どうやって使うんですか?文章をくっつけたりできますか?」
先生
「もちろんです!文字列の連結や分割、検索も簡単にできます。一緒に学んでいきましょう!」
1. C#の文字列型(string)とは?
文字列とは、1文字だけではなく、文字がいくつも並んでできている「文章」や「単語」のようなもののことです。たとえば「こんにちは」「ABC123」「2025年12月」など、ひらがな・カタカナ・漢字・数字・記号が混ざっていても、まとめて1つの文字列として扱えます。
C#では、こうした文字列を扱うときにstring型を使います。名前やメールアドレス、メッセージ文、住所、エラーメッセージなど、画面に表示する文章の多くはstring型で表現します。文字列を1つの値として変数に入れておくことで、あとから表示したり、別の処理に渡したりできるようになります。
実際にどのように使うのか、簡単なサンプルプログラムで見てみましょう。ここでは、あいさつの文章をstring型の変数に入れて、画面(コンソール)に表示しています。
string message = "はじめまして!";
Console.WriteLine(message);
はじめまして!
1行目では、string型の変数messageを用意し、"はじめまして!"という文字列を代入しています。文字列は、C#では必ず"(ダブルクォーテーション)で囲んで書くというルールがあります。
2行目のConsole.WriteLine(message);は、「messageに入っている文字列を画面に1行表示してね」という命令です。プログラムを実行すると、コンソール画面に「はじめまして!」と表示されます。このように、まずは「文字列を変数に入れる」「その変数を表示する」という流れをおさえておくと、今後ユーザー名や入力内容を表示したりするときにも応用しやすくなります。
2. 文字列を連結(くっつける)する方法
文字列を連結するというのは、2つ以上の文字列をくっつけて1つの文字列にすることです。C#では+(プラス記号)を使って連結できます。
string firstName = "田中";
string lastName = "太郎";
string fullName = firstName + " " + lastName;
Console.WriteLine(fullName);
田中 太郎
また、string.Concatメソッドや$を使った文字列補間(文字列の中に変数を埋め込む書き方)もあります。
string fullName = $"{firstName} {lastName}";
Console.WriteLine(fullName);
田中 太郎
3. 文字列を分割する方法
長い文字列を分割することもできます。たとえば「りんご,みかん,バナナ」のようなカンマで区切られた文字列を、1つずつの単語に分けることができます。
このとき使うのがSplitメソッドです。
string fruits = "りんご,みかん,バナナ";
string[] fruitArray = fruits.Split(',');
foreach (string fruit in fruitArray)
{
Console.WriteLine(fruit);
}
りんご
みかん
バナナ
Splitのかっこの中に、どの文字で分けるか(この例では「,」カンマ)を指定します。
4. 文字列の中を検索する方法
文字列の中に特定の文字が含まれているかどうか調べたいときは、Containsメソッドが便利です。
string sentence = "私はプログラミングが大好きです。";
bool result = sentence.Contains("プログラミング");
Console.WriteLine(result);
True
このように、特定の言葉が含まれているかをTrueまたはFalseで返してくれます。
また、IndexOfメソッドを使うと、その文字がどの位置にあるかを調べることができます。
int position = sentence.IndexOf("大好き");
Console.WriteLine(position);
11
この場合、「大好き」という言葉が11文字目から始まっていることがわかります。
5. その他のよく使う文字列操作
C#では他にも便利な文字列操作がたくさんあります。初心者にもよく使う基本的なものを紹介します。
文字列の長さを調べる
文字列の長さ(何文字あるか)を調べるには、Lengthプロパティを使います。
string name = "さくら";
Console.WriteLine(name.Length);
3
文字列を小文字・大文字に変換する
英語などで、文字列をすべて小文字にしたいときはToLower()、大文字にしたいときはToUpper()を使います。
string word = "Hello";
Console.WriteLine(word.ToLower());
Console.WriteLine(word.ToUpper());
hello
HELLO
空白や不要な文字を取り除く(Trim)
文字列の前後に余計な空白が入ってしまうことがあります。そんなときはTrimを使います。
string input = " C#プログラミング ";
string cleaned = input.Trim();
Console.WriteLine(cleaned);
C#プログラミング
6. string型は実はクラス
実はstring型は、C#で用意されたクラスの一種です。クラスとは、いろんな機能(メソッドやプロパティ)を持った型のことです。
そのため、今回紹介したようなLengthやSplit、Containsなどの便利な機能をたくさん使うことができます。
これらを覚えておけば、プログラムの中で文字を扱うのがグッと楽になります。
まとめ
C#の文字列型であるstringは、プログラムの中で文章や名前、説明文などを扱うためになくてはならない重要な存在です。日常生活の中では、言葉を使って情報を伝えていますが、プログラムでも同じように文字のやり取りが行われています。画面に表示したり、ユーザーに入力してもらったり、ファイルに保存したり、ネットワークを通して送受信したり、文字列が活躍する場面はとても幅広いです。今回の記事では、文字をくっつける連結、文章を小さく分ける分割、必要な言葉を探し出す検索といった便利な操作を中心に知識を深めてきました。実際にコードを書いて動かしてみることで、目に見える形で結果が返ってくるため、初心者でも理解しやすいという特徴があります。特に、SplitやContains、IndexOfなどは、簡単でありながら頻繁に使う処理のひとつです。複雑なアプリをつくるときにもよく使われるので、覚えておくと後から役立ちます。
stringはただの文字の集まりではなく、プログラムの中で色々な機能を持った便利な箱のような存在です。文字数を調べるLength、空白を取り除くTrim、表示を整えるToUpperやToLowerなど、状況に応じて使い分けることで処理がとてもスムーズになります。特にTrimは入力フォームなどで活躍し、余計な空白があると正しく判定できない場面を防いでくれるので、実務でもよく使われます。また、文字列補間の書き方は、見やすく読みやすいコードを書くための大切な手段です。複数の変数を組み合わせる場面では積極的に使うと、後からプログラムを読むときに理解がしやすくなります。
例えば、以下のようなサンプルコードを見ると、stringを使った処理がどれだけ柔軟かがよくわかります。文章を並び替えたり、探したり、必要な部分だけを取り出したりと、文字を自由に扱えるようになると、プログラミングがぐっと楽しくなります。特に初心者にとっては、「動いた!」「表示できた!」という小さな成功体験が学習意欲につながります。少しずつ試しながら、文字列の扱いに慣れていきましょう。
簡単な復習サンプル
string info = "C#とstringはとても便利な機能です";
Console.WriteLine(info);
// 分割
string fruits = "りんご,みかん,バナナ";
string[] list = fruits.Split(',');
// 検索
bool check = info.Contains("便利");
// 長さ
int length = info.Length;
Console.WriteLine(length);
stringはクラスであるため、今後さらに学習を進めると、たくさんのメソッドを使いこなすことができるようになります。複雑に見えるアプリケーションでも、内部では文字列が整理されて動作していることが多いため、文字列を扱えるということはすなわち、プログラム全体を理解するための大きな一歩となります。住所・メールアドレス・名前・日付・ログ・メッセージ・商品名など、実際のシステムではいつも文字情報が使われています。初心者の段階で丁寧に基礎を身につけると、あとで応用しやすくなるため、ゆっくりでも自分のペースで進んでいくと良いでしょう。
また、stringは変更に少し特徴があります。文字列は「イミュータブル」と呼ばれ、作ったあとに中身が直接変わることはありません。新しい文字列が作られて入れ替わるという考え方です。「え、変わっているように見えるのに?」と思うかもしれませんが、実は内部で新しい文字列が生成されているため、メモリ管理の仕組みがしっかりと作られています。これを知っておくと、複雑な処理をする際にパフォーマンスの考え方にも繋がっていきます。ただ、最初のうちは深く気にしなくても構いません。文字列が扱えるようになると、画面の表示だけではなく、計算結果の表示やファイル出力など、いろいろな機能に応用できます。
そして、文字列を使うときにもうひとつ便利なのが、フォーマットによる整形です。たとえば数字を含む文章を綺麗に並べたいとき、$マークを使った文字列補間を組み合わせると非常にわかりやすい出力になります。読みやすいプログラムは、ミスを減らし保守しやすくなります。初心者のうちから見やすい書き方を意識しておくと、自然とよい書き方が身につきます。
今回学んだ内容を振り返ると、stringは次のような場面で大活躍します。 名前の結合、文章の整形、入力データの処理、検索機能、ログ出力、設定ファイルの読込、外部サービスとの通信などです。実際のプログラムは文字情報と密接に関係しているため、stringを理解することはC#全体の理解にもつながります。何度か試すうちに、自然と使い方が身についていくので、気になるところがあればコードを少し変更して遊んでみるのもおすすめです。
今後、文字列の置換、正規表現、フォーマット、サブストリングなどを学んでいくと、さらに強力なデータ加工ができるようになります。小さな一歩が、大きな結果につながるので、焦らず、丁寧に、そして楽しみながら学んでいきましょう。
生徒
「stringって、ただの文字じゃなくて、色んな機能があるんですね!」
先生
「その通り。分割、検索、長さ確認、空白削除など、毎日のように使う場面があるんですよ。」
生徒
「特にSplitは便利だと思いました。カンマで分けたり、スペースで区切ったり、色んな使い方ができそうです。」
先生
「検索処理も役立つでしょう。ContainsやIndexOfで、必要な言葉を探せます。アプリのログ解析や入力チェックでも使えます。」
生徒
「なんとなく難しそうと思っていたけど、実際に動かしてみると分かりやすかったです!」
先生
「大事なのは、少しずつ慣れること。文字列はどんなプログラムにも関わってくるので、今の理解が必ず役に立ちます。」