文字列を扱う基礎 ― string / System.Stringクラス

C# では string(キーワード)と System.String(クラス名)は同じ型を指します。文字列は「イミュータブル(変更不可)」で、一度作ったインスタンスの中身を書き換えることはありません。メソッドを呼び出すと 必ず新しい文字列 が戻ってくる ― これを覚えておくと、メモリのしくみやパフォーマンスを誤解しにくくなります。


代表的なプロパティ

プロパティ役割
Lengthint文字数を返すint n = “Hello".Length;  // 5
this[int index](インデクサ)char指定位置の 1 文字を返すchar c = “猫".ToCharArray()[0]; // '猫’

[] で 1 文字ずつ取り出せますが、取り出し結果は char 型です。日本語などマルチバイト文字も 1 文字として数えられます(UTF-16 コードユニット単位)。


よく使うメソッド(抜粋)

分類メソッド概要
検索IndexOf(string)最初に見つかった位置(0 始まり)を返す。見つからないとき -1“apple".IndexOf(“p")  // 1
Contains(string)部分文字列を含むかどうか(bool)“abc".Contains(“b")  // true
抽出Substring(int, int?)位置と長さを指定して切り出し“abcdef".Substring(2, 3)  // “cde"
変換ToUpper() / ToLower()大文字/小文字に変換“Hello".ToUpper()  // “HELLO"
Trim() / TrimStart() / TrimEnd()余分な空白や改行を除去"  x \n".Trim()  // “x"
置換Replace(old, new)文字列・文字を別のものへ置換“a-b-c".Replace(“-“, “,")  // “a,b,c"
判定StartsWith() / EndsWith()接頭・接尾の一致判定“photo.jpg".EndsWith(“.jpg")
分割Split(char[]/string[])区切り文字で配列に分割“A,B,C".Split(',’)  // {“A","B","C"}
結合(応用)String.Join(separator, IEnumerable)配列やリストを 1 本の文字列にまとめるString.Join(“/", new[]{ “2025","07″,"22″})  // “2025/07/22"

String.Join はこの先 配列や List<T> を学んだ後 で役立つメソッドです。まだリストを習っていない場合は「こういう便利技がある」と頭の片隅に置いておけば十分です。


文字列補間(便利な書き方)

int score = 95;
string name  = "Ken";
string msg = $"{name}さんの点数は {score} 点です";
// → "Kenさんの点数は 95 点です"
  • 先頭に $ を付ければ 変数や式を {} で直接埋め込める ので、String.Format より読みやすい。
  • 内部では String.Format が呼ばれて新しい文字列が生成されています(= イミュータブルの原則)。

まとめ — まず覚えておく 3 つ

  1. Length … 長さを調べる
  2. Substring / IndexOf … 切り出しと検索
  3. Replace / ToUpper / Trim … 内容を加工(結果は 新しい 文字列)

この 3 系統を押さえると、ファイルパスの加工やユーザー入力のチェックなど 実践的な課題 で即戦力になります。慣れてきたら Split や String.Join、StartsWith/EndsWith なども順次取り入れ、文字列処理のレパートリーを広げていきましょう。

訪問数 8 回, 今日の訪問数 8回

C#

Posted by hidepon