char型C#のchar型は、テキストを構成する最小単位を表す16ビットの値です。
複数のcharを組み合わせて"word"のような文字列を作ることもできますし、それぞれのcharを個別に扱うこともできます。charのリテラルは、'A'のようにシングルクォートで囲みます。
C#のcharはUTF-16のUnicodeエンコーディングに対応しているので、ラテン文字だけでなく、世界で使われているほぼすべての文字体系を表せます。たとえば、ギリシャ文字の'β'です。
charを調べたり操作したりするための組み込みのライブラリメソッドがたくさんあります。これらはSystem.Charクラスの静的メソッドとして用意されています。
StringBuildercharは、StringBuilderオブジェクトと組み合わせて使われることがあります。
このオブジェクトには、文字列を1文字ずつ組み立てて操作できるメソッドがあります。処理の最後にToStringを呼び出すと、完成した文字列を出力できます。
この演習では、エンジニアが識別子の名前を整えるのを手助けする、ユーティリティルーチンの一部を実装します。
5つのタスクを通して、Cleanルーチンを少しずつ作り上げていきます。
有効な識別子は、0個以上の英字とアンダースコアで構成されます。
どの場合も、入力文字列がnullでないことは保証されています。
Clean関数に空文字列を渡した場合は、空文字列を返すようにしてください。
なお、空の識別子は効果がないため、呼び出し側は空の識別子でCleanルーチンを呼び出さないようにしましょう。
(static) Identifier.Clean()メソッドを実装して、空白をアンダースコアに置き換えます。
先頭と末尾の空白も対象です。
Identifier.Clean("my Id");
// => "my___Id"
(static) Identifier.Clean()メソッドを変更して、制御文字を大文字の文字列"CTRL"に置き換えます。
Identifier.Clean("my\0Id");
// => "myCTRLId",
(static) Identifier.Clean()メソッドを変更して、ケバブケースをキャメルケースに変換します。
Identifier.Clean("à-ḃç");
// => "àḂç"
(static) Identifier.Clean()メソッドを変更して、英字以外の文字を除外します。
Identifier.Clean("1😀2😀3😀");
// => ""
(static) Identifier.Clean()メソッドを変更して、'α'から'ω'までの範囲のギリシャ文字を除外します。
Identifier.Clean("MyΟβιεγτFinder");
// => "MyΟFinder"