string型とは?
C#のstring型は、ひと言でいうと「文字列」を専門に扱うための部品(データ型)です。
プログラムの中で「こんにちは」という挨拶や、ユーザーの名前といったテキスト情報を扱いたいときに使います。日常生活で、メモ帳に文章を書くのと同じように、プログラムではstring型の変数に文字列を入れて使います。
string型の特徴
- 一度作った文字列の中身は変更できないという不変性を持つ
- 文字列の長さを調べたり、文字を置き換えたりする便利な機能が豊富に用意されている
- 二重引用符(")でテキストを囲むだけで簡単に文字列として扱える
- 意図しない値の変更を防ぎ、安全なプログラムを作成できる
このように、string型はテキスト情報を安全かつ便利に扱うための重要な役割を担っています。
基本構文
string型を使用する基本的な構文をご紹介します。文字列の宣言は簡単で、変数名の前にstringキーワードを付けて二重引用符内にテキストを記述します。
また、string型には多くの便利なメソッドが用意されており、文字列の長さを取得したり、大文字小文字を変換したりできます。以下のコード例で基本的な使い方を確認してみましょう。
出力結果
ネコ
こんにちは
この例では、string型の変数に値を代入し、動物名とあいさつ文を順に表示しています。
出力結果
12
Dogs running
DOGS RUNNING
この例では、文字列の長さを取得する方法を示しています。message.Lengthで文字数を取得し、ToUpper()で大文字変換を行っています。
実用例
ここからは実際の開発でよく使用される文字列操作の具体例をご紹介します。文字列の連結、検索、置換、分割など、日常的なプログラミングで必要となる操作を実際のコードを交えて解説していきます。
各例では動物の名前を使用して親しみやすく学習できるよう工夫しています。これらの例を理解することで、実際のアプリケーション開発においても自信を持って文字列操作を行えるようになるでしょう。それぞれのコード例には詳しい説明を付けているので、初心者の方でも安心して学習を進められます。
文字列の連結と結合
複数の文字列を組み合わせる処理は、メッセージ作成や動的なテキスト生成でよく使用されます。
出力結果
ライオンとゾウが仲良し
この例では、+演算子を使い、変数animal1、文字列の「と」、変数animal2、そして「が仲良し」という文字列を連結しています。+を使うと、複数の文字列を簡単につなぎ合わせることができます。
文字列の検索と置換
文字列内の特定の文字や文字列を検索し、別の文字列に置き換える処理です。データの修正や文書の編集でよく使用されます。
出力結果
カエルが跳ねる
True
この例では、まずReplaceメソッドを使い、変数textに含まれる「ウサギ」を「カエル」に置き換えた新しい文字列をnewTextに代入しています。次に、Containsメソッドを使って、元の文字列に「跳ねる」という単語が含まれているかを調べています。含まれている場合はTrue、そうでない場合はFalseが返されます。
文字列の分割処理
区切り文字を基準に文字列を複数の部分に分割する処理です。CSVデータの解析や単語の抽出などで活用できます。
出力結果
イヌ
ネコ
トリ
サカナ
この例では、Split(',')を使い、カンマを区切り文字として文字列animalsを分割しています。分割された「イヌ」「ネコ」「トリ」「サカナ」の各文字列は、partsという配列に格納されます。その後、foreachループ処理で配列の中身を一つずつ取り出して、改行しながら表示しています。
文字列の書式設定
変数の値を文字列に埋め込む際に使用する書式設定の方法です。レポート作成やメッセージ表示で重要な機能です。
出力結果
パンダが3匹います
この例では、"{0}が{1}匹います"というテンプレート文字列に対して、string.Formatメソッドを使って値を埋め込んでいます。{0}には1つ目の変数animalの値、{1}は2つ目の変数countの値が挿入され、最終的に「パンダが3匹います」という文字列が生成されます。
この書式設定の仕組みは、レポートの自動生成やメッセージ表示など、動的に内容を組み立てる処理でよく使われます。
文字列の比較処理
文字列同士を比較する処理は、条件分岐やデータの検証で頻繁に使用されます。大文字小文字の違いも考慮できます。
出力結果
False
True
この例では、Equalsメソッドで2つの文字列を比較しています。最初の比較では、animal1の「キリン」とanimal2の「きりん」は文字の大きさが違うため、False(一致しない)と判定されます。2番目の比較では、StringComparison.OrdinalIgnoreCaseを指定することで大文字と小文字を区別せずに比較するため、True(一致する)と判定されます。
大文字小文字の変換
英字文字列の大文字小文字を変換する処理です。データの正規化や表示形式の統一で使用されます。
出力結果
TIGER
elephant
この例では、ToUpperメソッドを使って変数animalの文字列"tiger"をすべて大文字に変換しています。一方、ToLowerメソッドでは"ELEPHANT"をすべて小文字に変換しています。
大文字・小文字の変換は、データの正規化や表示形式の統一など、比較や出力処理で一貫性を保つためによく利用されます。
文字列の長さと部分取得
文字列の長さを取得したり、特定の位置から部分文字列を取得する処理です。文字数制限やテキスト処理で重要です。
出力結果
5
カンガ
この例では、まずLengthプロパティを使って文字列animalの文字数を取得しています。「カンガルー」は5文字なので、5が表示されます。次にSubstring(0,3)を使い、0番目の文字(先頭の「カ」)から3文字分を切り出して表示しています。
文字列の前後空白除去
文字列の前後にある不要な空白文字を除去する処理です。ユーザー入力の処理やデータクレンジングで活用されます。
出力結果
' シマウマ '
'シマウマ'
この例では、前後に空白が入った文字列animalを用意し、Trimメソッドでそれらの空白を取り除いています。分かりやすいように、出力時にシングルクォーテーション(')で文字列を囲んでおり、Trimを適用した後では空白がなくなっているのが確認できます。
まとめ
C#のstringは、文字列操作で頻繁に利用される基本的な型です。この記事では、基本的な使い方から実践的なテクニックまで解説しました。
stringが活用できるような場面は次のようなケースです。
stringが活躍する場面
- UIに表示するメッセージを組み立てるとき
- データベースから取得したテキスト情報を加工するとき
- ファイル入出力で文字列データを扱うとき ・特定の形式の文字列を解析したり、生成したりするとき
stringを用いる上で、押さえておきたいポイントを覚えておきましょう。
重要なポイント
- 文字列は不変で、変更すると新しいオブジェクトが作られる
- 目的に合ったメソッドを選ぶと、効率的に文字列を操作できる
- 多くの文字列を結合するときは、StringBuilderを使う
- null許容参照型を有効にすると、意図しないnullエラーを防げる
初めてC#を学ぶ方も、この記事で紹介した内容を実際に書いて、基本的な使い方を試してみてください。
文字列操作は、実際の開発で想像以上によく使用されます。ぜひstringをマスターして、より複雑で実用的なプログラムを作成できるようになりましょう。