文字列での作業


Now that you know some more about variables and different data types , 我々はもう少し詳細にそれらを探索し、あなたがしたいかもしれない共通のもののいくつかを学びます.この投稿では、さらに文字列を探索し、それらを使用する方法を説明します.

文字列連結
文字列の連結は、文字列を一緒に結合するという空想的な方法です.つの文字列を一緒に結合するには+ 演算子:
// Example 1
string concatenated = "String 1. " + "String 2.";
// concatenated = "String 1. String 2."

// Example 2
string string1 = "String 1. ";
string string2 = "String 2.";
string concatenated = string1 + string2;
// concatenated = "String 1. String 2."
もう一つの文字列連結演算子があります.+= . これにより、2つの文字列を連結し、新しい連結文字列を元の変数に代入できます.これはおそらく以下の通りです.
string string1 = "String 1. ";
string1 += "String 2.";
// string1 = "String 1. String 2."

文字列補間
補間文字列は、その中に他のコード式を持つ文字列です.これらの式を最初に評価し、最後の文字列を指定します.これは、式の値が変更できるように動的に文字列を生成する場合に便利です.補間文字列を$ 引用符の前に、式を巻き括弧内に置きます.
// Example 1
string name = "Sam";
string interpolated = $"Hello, my name is {name}.";
// interpolated = "Hello, my name is Sam."

// Example 2
string interpolated = $"Sum: {5 + 6}";
// interpolated = "Sum: 11";
第2の例は整数加算演算子を使用します.+ , 我々は、後のポストでカバーします.

エスケープ文字
文字列内の引用符(")を使用している場合は、文字列の開始と終了に使用されるので動作しません.\ ) 引用符の前に\" ). 文字列の使用時に知る他のエスケープシーケンスもいくつかあります.
  • \「なる」
  • \\になる
  • \nが新しい線になります
  • \Rは復帰
  • 例えば、
    string myQuote = "I like \"quotation marks\".";
    // becomes I like "quotation marks".
    

    逐語的な文字列
    逐語的な文字列は、文字列が正確にどのように入力されるかを印刷することを意味します.これはエスケープシーケンスが無視され、実際の文字が印字されることを意味します.例えば、Windowsファイルシステムパスについて話すとき、バックスラッシュは実際のバックスラッシュと解釈されて、エスケープシーケンスではない.直近の文字列は、@ シンボル.
    string regularString = "C:\\Users\Sam";
    // throws an error due to unrecognised escape sequence
    
    string verbatimString = @"C:\\Users\Sam";
    // verbatimString = "C:\\Users\Sam"
    

    書式指定文字列
    ここでは、我々の最初の方法に遭遇します.私たちは後のポストでより詳細にメソッドをカバーします、しかし、彼らは操作を実行して、若干の価値を返す方法を提供します.この場合、我々はstring.Format いくつかのパラメータを取り、文字列を返すメソッドです.
    string myString = string.Format("My name is {0} and I am {1} years old", "Sam", 27);
    // myString = "My name is Sam and I am 27 years old";
    
    上の例ではstring.Format 作品括弧内の各式() ) が引数として知られています.最初の引数は、フォーマットする文字列です.これには、括弧の括弧とインデックス番号が含まれます.インデックスが0から始まるので注意してください{0}"Sam" and {1}27 .
    しかし、本当の力string.Format メソッドは引数に渡す値をフォーマットできます.例えば、
    string myString = string.Format("{0:C}", 12.345);
    // myString = "$12.35"
    // N.B. the currency symbol shown depends on your current culture settings
    
    string myString = string.Format("{0:E}", 12345);
    // myString = "1.234500E+004"
    
    これらはちょうど2つの例で、最初は通貨として数をフォーマットし、2番目は科学的表記法で数をフォーマットします.The string.Format メソッドは非常に強力であり、他の多くの方法で文字列をフォーマットできます.ここでいくつかの他の方法をフォーマットするnumbers and dates .

    空の文字列のチェック
    文字列が含まれているかどうかをチェックする必要が頻繁にあることがわかります.そのためにはstring.IsNullOrEmpty メソッドを返すtrue もし空であるかfalse それが空でないならば.
    bool isEmpty = string.IsNullOrEmpty("Hello");
    // isEmpty = false
    
    bool isEmpty = string.IsNullOrEmpty("");
    // isEmpty = true
    
    bool isEmpty = string.IsNullOrEmpty(string.Empty);
    // isEmpty = true
    
    bool isEmpty = string.IsNullOrEmpty(null);
    // isEmpty = true
    
    注意"" and string.Empty は等価です.空であるだけでなく、文字列もnull . これは特別な値であり、我々は適切に後のポストでこれをカバーするが、今のところ、それを知っているstring.IsNullOrEmpty リターンtrue 文字列がnull .

    小文字の文字列
    つの文字列を比較する必要がある場合は、両方の文字列を小文字に変換し、任意の資本化を考慮しないようにします.このため、ToLower メソッドは文字列を受け取り、小文字をすべて同じ文字列で返します.
    string myString = "Hello, my name is Sam.";
    string lowercase = myString.ToLower();
    // lowercase = "hello, my name is sam."
    

    文字列の一部を取得する
    場合によっては、文字列の一部を取得する必要があります.このため、我々はSubstring メソッド.このメソッドの最初の引数は、開始する最初の文字列のインデックスです.停止する元の文字列のインデックスに対する2番目のオプション引数があります.二番目の引数が与えられていない場合、部分文字列は元の文字列の末尾に続く.
    string fullString = "Hello, my name is Sam";
    
    string subString = fullString.Substring(7);
    // subString = "my name is Sam"
    
    string subString = fullString.Substring(0, 5);
    // subString = "Hello"
    

    ストリングの分割と結合
    場合によっては、分割し、いくつかのルールに基づいて文字列に参加する必要があることがわかります.たとえば、文字列を個々の単語に分割したり、コンマで文字列を結合したりする場合があります., ) CSVを作る.ここがどこですSplit and string.Join 方法は遊びに来る.
    string myString = "Hello, my name is Sam.";
    string[] split = myString.Split(' ');
    // split = ["Hello,", "my", "name", "is", "Sam."]
    
    ここで注意すべきことがいくつかあります.ファーストSplit メソッドはchar 引数として、アポストロフィを使用します.' ). この場合、スペースによって分割されます.デフォルトでは引数を空にすることもできますSplit メソッドは空白を分割します.
    第二に、ここに新しいデータ型があります.string[] . これは文字列の配列を表します.これは基本的に1つの変数にまとめられた複数の文字列の集合を意味します.インデックスでアクセスできます.例えば、
    string[] split = ["Hello,", "my", "name", "is", "Sam."];
    string hello = split[0];
    // hello = "Hello,"
    
    後のポストで詳細に配列をカバーします.
    The string.Join メソッドは基本的にSplit . それはchar と文字列の配列を返します.char .
    string[] split = ["This", "is", "a", "string"];
    string joined = string.Join(',', split);
    // joined = "This,is,a,string"
    

    結論
    このポストでは、文字列で動作するように知る必要がある最も一般的な操作とメソッドのいくつかを経験しました.私は非常にので、どのように使用するときに快適になるこれらの詳細を使用して練習をお勧めします.新しいVisual Studioプロジェクトを作成したくない場合は、次の手順を実行します..NET Fiddle すぐにコードの小さなスニペットを実行するための偉大なオンラインC Chentherサンドボックスです.
    あなたがこのシリーズのどんなポストも見逃すことがないことを確認するために、このブログとsubscribe to my newsletter . あなたがこのポスト役に立つとわかるならば、それを好きで、それを共有してください.また、私を見つけることができます.あなたができるならば、自由に感じてくださいbuy me a coffee . それは私がコミュニティのために行う書き込みをサポートするのに役立ちます.😊
    初心者Cシリーズシリーズの一部です.私は、各ポストへのリンクで、このセクションを更新します.
  • Why learn C#?

  • Getting Started

  • Variables and Basic Data Types

  • Working with Strings