文字列を扱う基礎 ― string / System.Stringクラス
C# では string(キーワード)と System.String(クラス名)は同じ型を指します。文字列は「イミュータブル(変更不可)」で、一度作ったインスタンスの中身を書き換えることはありません。メソッドを呼び出すと 必ず新しい文字列 が戻ってくる ― これを覚えておくと、メモリのしくみやパフォーマンスを誤解しにくくなります。
代表的なプロパティ
プロパティ | 型 | 役割 | 例 |
---|---|---|---|
Length | int | 文字数を返す | 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 つ
- Length … 長さを調べる
- Substring / IndexOf … 切り出しと検索
- Replace / ToUpper / Trim … 内容を加工(結果は 新しい 文字列)
この 3 系統を押さえると、ファイルパスの加工やユーザー入力のチェックなど 実践的な課題 で即戦力になります。慣れてきたら Split や String.Join、StartsWith/EndsWith なども順次取り入れ、文字列処理のレパートリーを広げていきましょう。
訪問数 8 回, 今日の訪問数 8回
ディスカッション
コメント一覧
まだ、コメントがありません