工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C# 文字列をマスターする:基礎、操作、高度なテクニック

C# 文字列をマスターする:基礎、操作、高度なテクニック

このチュートリアルでは、実例を通じて C# の文字列とそのメソッドについて学習します。

C# において文字列は文字のシーケンスです。たとえば "hello" は 'h'、'e'、'l'、'l'、'o' の文字シーケンスを含む文字列です。

string キーワードで文字列を作成します。例:

// 文字列を作成
string str = "C# Programming";

ここでは str という string を作成し、テキスト "C# Programming" を割り当てました。C# では二重引用符で文字列を表します。


例:C# で文字列を作成

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 文字列を作成
            string str1 = "C# Programming";
            string str2 = "Programiz";
            // 文字列を出力
            Console.WriteLine(str1);
            Console.WriteLine(str2);
            Console.ReadLine();
        }
    }
}

出力

C# Programming
Programiz

上記の例では str1 と str2 という 2 つの文字列を作成し、出力しました。

注意: C# の文字列変数は int、char などのプリミティブ型ではなく、String クラスのオブジェクトです。


文字列操作

C# 文字列にはさまざまな操作を行うメソッドが用意されています。よく使用される操作を見ていきます。

1. 文字列の長さを取得

文字列の長さを求めるには Length プロパティを使用します。例:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 文字列を作成
            string str = "C# Programming";
            Console.WriteLine("string: " + str);
            // str の長さを取得
            int length = str.Length;
            Console.WriteLine("Length: " + length);
            Console.ReadLine();
        }
    }
}

出力

string: C# Programming
Length: 14

Length プロパティは文字列の総文字数を計算して返します。


2. C# で 2 つの文字列を結合

Concat() メソッドで 2 つの文字列を結合できます。例:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 文字列を作成
            string str1 = "C# ";
            Console.WriteLine("string str1: " + str1);
            // 文字列を作成
            string str2 = "Programming";
            Console.WriteLine("string str2: " + str2);
            // 2 つの文字列を結合
            string joinedString = string.Concat(str1, str2);
            Console.WriteLine("Joined string: " + joinedString);
            Console.ReadLine();
        }
    }
}

出力

string str1: C#
string str2: Programming
Joined string: C# Programming

Concat() メソッドが str1 と str2 を結合し、joinedString に代入します。

C# では + 演算子でも文字列結合可能です。詳細は C# string Concat を参照してください。


3. C# で 2 つの文字列を比較

C# では Equals() メソッドで 2 つの文字列を比較できます。Equals() は 2 つの文字列が等しいかどうかをチェックします。例:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 文字列を作成
            string str1 = "C# Programming";
            string str2 = "C# Programming";
            string str3 = "Programiz";
            // str1 と str2 を比較
            Boolean result1 = str1.Equals(str2);
            Console.WriteLine("string str1 and str2 are equal: " + result1);
            // str1 と str3 を比較
            Boolean result2 = str1.Equals(str3);
            Console.WriteLine("string str1 and str3 are equal: " + result2);
            Console.ReadLine();
        }
    }
}

出力

string str1 and str2 are equal: True
string str1 and str3 are equal: False

str1、str2、str3 の 3 つの文字列を作成し、Equals() メソッドで等価性をチェックしています。


文字列オブジェクトの不変性

C# では文字列は不変(イミュータブル)です。つまり、一度文字列を作成すると、その文字列を変更することはできません。

理解のために例を考えます:

// 文字列を作成
string str = "Hello ";

ここでは str という文字列変数を作成し、"Hello " を保持しています。

ここで str を変更したいとします:

// 別の文字列 "World" を
// 前の文字列に追加
str = string.Concat(str, "World");

Concat() メソッドで "World" を前の文字列 str に追加しています。

しかし不変ならどうやって変更できたのでしょう?

実際に起きていることは:

  1. C# は文字列 "Hello " の値を取得します。
  2. "World" を追加して新しい文字列を作成します。
  3. "Hello World" という値を持つ新しい文字列オブジェクトを作成し、str に格納します。
  4. 元の文字列 "Hello " は他の変数から参照されていないため、ガベージコレクションの対象として解放されます。

文字列エスケープシーケンス

エスケープ文字は文字列内の特定の文字をエスケープするために使用します。つまり、特殊文字を文字列内に挿入するためにエスケープシーケンスを使います。

文字列内に二重引用符を含めたいとします:

// 二重引用符を含める
string str = "This is the "String" class";

文字列は二重引用符で表されるため、コンパイラは "This is the " を文字列とみなし、エラーになります。

これを解決するには C# でエスケープ文字 \" を使用します:

// エスケープ文字を使用
string str = "This is the \"String\" class.";

\ を二重引用符 " の前に置くことで、文字列内に含められます。

C# の主なエスケープシーケンス:

エスケープシーケンス文字名
\'一重引用符
\"二重引用符
\\バックスラッシュ
\0null
\n改行
\t水平タブ

文字列補間

C# では文字列補間を使用して変数を文字列内に埋め込めます。文字列リテラルは $ 文字で始める必要があります。例:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 文字列を作成
            string name = "Programiz";
            // 文字列補間
            string message = $"Welcome to {name}";
            Console.WriteLine(message);
            Console.ReadLine();
        }
    }
}

出力

Welcome to Programiz

name 変数を message 文字列内で使用しています。

string message = $"Welcome to {name}";

注目点:


C# 文字列のメソッド

C# にはさまざまな文字列メソッドがあります。主なもの:

メソッド説明
Format()フォーマット済み文字列を返す
Split()文字列を部分文字列に分割
Substring()文字列の部分文字列を返す
Compare()文字列オブジェクトを比較
Replace()指定文字を別の文字で置換
Contains()部分文字列を含むかチェック
Join()指定区切り文字で文字列を結合
Trim()先頭と末尾の空白を削除
EndsWith()指定文字列で終わるかチェック
IndexOf()指定文字の位置を返す
Remove()文字列から文字を削除
ToUpper()大文字に変換
ToLower()小文字に変換
PadLeft()左側にパディング
PadRight()右側にパディング
StartsWith()指定文字列で始まるかチェック
ToCharArray()文字配列に変換
LastIndexOf()指定文字列の最後の出現位置を返す

よくある質問

1. C# で文字列配列を作成するには?

文字列配列は他のデータ型の配列と同様に作成します。例:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 文字列型の配列
            string[] animals = {"Monkey", "Dog", "Cat"};
            // 配列要素を出力
            Console.WriteLine(animals[0]);
            Console.WriteLine(animals[1]);
            Console.WriteLine(animals[2]);
            Console.ReadLine();
        }
    }
}

出力

Monkey
Dog
Cat

2. C# で string と String の違いは?

string と String に技術的な違いはありません。C# では string は System.String のエイリアスです。

using System; なしでも動作する string の使用が推奨されます。

C言語

  1. C++文字列関数をマスター:strcpy、strcat、strlen、strcmpの実践例
  2. C 言語の文字列をマスター: 宣言、入力、出力、ライブラリ関数
  3. Python strip()メソッド完全ガイド:実践例付き
  4. Python str.count()マスター:文字と部分文字列のカウント実例集
  5. Python format()文字列を明確な例でマスター
  6. Python len()関数:オブジェクトの長さを測る実践ガイド
  7. Python String.find()メソッド完全ガイド:構文、例、代替手法
  8. Java文字列をマスター:生成、メソッド、ベストプラクティス
  9. Java Enumの文字列表現マスター:デフォルト、オーバーライド、高度なパターン
  10. Java String.charAt()完全解説:構文、戻り値、例外、実例
  11. Java String.endsWith()マスター:文字列サフィックスチェック実例付き