今回は文字列(string)についてです。
C#で文字列をあつかうにはstring型を使います。
いろいろ書いてありますが、代入の書き方だけ覚えたらあとはこんなのあったなぁ程度に頭に入れておいて必要になった時にまた見返してください。
文字列の初期値や代入について
string型の変数を宣言だけした場合、初期値は null になります。
このまま、その変数を使用するとエラーになるので注意してください。
宣言をしたら空文字(長さ0の文字列)を代入するようにしましょう。
string str1 = "";
string str2 = System.String.Empty; //これも空文字を表す
string型の変数に値を代入するには文字列を“ (ダブルコーテーション)で括ります。
string str1 = "abcde";
string str2 = "あいうえお";
複数行まとめて代入したいという場合は、@(アットマーク)を使います。
エスケープシーケンス
文字列の中でダブルコーテーションを使いたい場合、エスケープシーケンスを使います。
円マーク( / )を ” の前に付けるとダブルコーテーションを表します。
string str = "\"";
System.Console.WriteLine(str); // "
他にもそのままでは使えない文字があるのでその場合、エスケープシーケンスを使います。
エスケープシーケンス | 使用したい文字 |
---|---|
\” | ダブルコーテーション |
\\ | 円マーク |
\n | 改行 |
\r | キャレッジリターン |
\t | 水平タブ |
\v | 垂直タブ |
@(逐語的識別子)アットマーク
逐語的識別子 @(アットマーク)を使うと “~“ 内に書いた文字列がそのまま使えます。
ざっくりいうと、円マークなどエスケープが必要だった文字がそのまま書けて、
複数行も改行を使って入力できるようになります。
わかりにくいと思うのでサンプルです。
文字列の前に@を付けるだけで使えます。
//円マークがそのまま書ける
string str1_1 = "c:\\source\\ConsoleApp1";
string str1_2 = @"c:\source\ConsoleApp1";
//ダブルコーテーションは2回続けて書く
string str2_1 = " \" ";
string str2_2 = @" "" ";
//改行もEnterでいける
string str3_1 = "あいう\nえお";
string str3_2 = @"あいう
えお";
ついでですが、@を付けるとC#の予約語(キーワード)と同じ名前の変数名を付けることができます。
int @int = 10;
System.Console.WriteLine(@int);
文字列補間 $” { } ”
ドルマーク$ を使うと文字列リテラル(ダブルコーテーションで指定した文字列のこと)の中に変数を埋め込むことができます。埋め込まれた変数は文字列型に変換されます。
使い方は文字列の前に $ を付け、変数を { } の中に書きます。
int number1 = 1031;
System.Console.WriteLine($"私は「{number1}」です。"); //私は「1031」です。
文字列として “{“、”}” を使いたい場合は”{{“、”}}” と2つ続けて入力します。
int number1 = 1031;
System.Console.WriteLine($"私は{{number1}}です。"); //私は{number1}です。
System.Console.WriteLine($"私は{{{number1}}}です。"); //私は{1031}です
また、文字列に変換する際のフォーマットの指定もできます。
変数の後ろに : (コロン)を付けてフォーマットを指定します。
int numer1 = 1031;
System.Console.WriteLine($"私は「{numer1:000,000}」です。"); //私は「001,031」です。
アットマークとドルマークは一緒に使える
逐語的識別子(@)と文字列補間($)は一緒に使うことができる。
int number1 = 1031;
string moji = $@"
私は「{number1}」です。
";
そのほかの文字列関連の記事
その他の文字列関連の記事はこちら、必要に応じて見てみてください。
- 文字数を取得する
- アルファベットを大文字、小文字に変換する
- 文字列を連結する
- 文字列を区切り文字を付けて連結する
- 文字列を分割する
- 文字列を切り出す
- 文字列を指定した文字で置き換える
- 文字列の先頭と末尾の空白を取り除く
- 文字列の先頭と末尾から指定した文字を取り除く
- 文字列が空文字、null、空白かどうか判定する
- 文字列を検索する
- 文字列を数値型に変換する
- 文字列を反転させる
C# 記事まとめページに戻る(他のサンプルコードもこちら)
コメント