C#のstringは、不変のテキストをUnicode文字の並び(文字、数字、句読点など)として表すオブジェクトです。stringインスタンスを定義するには、二重引用符を使います。
string fruit = "Apple";
文字列を操作するには、文字列の組み込みメソッドを呼び出します。たとえば、文字列から空白を削除するには、Trimメソッドを次のように使います。
string name = " Jane "
name.Trim()
// => "Jane"
一度文字列を作成すると、その値を変更することはできません。文字列を変更しているように見えるメソッドも、実際には新しい文字列を返します。
複数の文字列は連結(加算)できます。最も簡単な方法は、+演算子を使うことです。
string name = "Jane";
"Hello " + name + "!";
// => "Hello Jane!"
単純な連結よりも複雑な文字列の書式設定には、文字列補間を使うのがおすすめです。文字列で補間を使うには、先頭にドル記号($)を付けます。次に、波括弧({})を使って、文字列内の変数にアクセスできます。
string name = "Jane";
$"Hello {name}!";
// => "Hello Jane!"
この演習では、ログ行を処理します。
各ログ行は、"[<LEVEL>]: <MESSAGE>"という形式の文字列です。
ログレベルは次の3つです。
INFOWARNINGERRORタスクは3つあります。それぞれのタスクでは、ログ行を1つ受け取り、それに対して何らかの処理を行います。
ログ行のメッセージを返す(static)LogLine.Message()メソッドを実装しましょう。
LogLine.Message("[ERROR]: Invalid operation")
// => "Invalid operation"
先頭と末尾の空白は取り除きます。
LogLine.Message("[WARNING]: Disk almost full\r\n")
// => "Disk almost full"
ログ行のログレベルを小文字で返す(static)LogLine.LogLevel()メソッドを実装しましょう。
LogLine.LogLevel("[ERROR]: Invalid operation")
// => "error"
ログ行を整形する(static)LogLine.Reformat()メソッドを実装しましょう。メッセージを先に、ログレベルをその後ろに括弧(())で囲んで置きます。
LogLine.Reformat("[INFO]: Operation completed")
// => "Operation completed (info)"