※記事内に商品プロモーションを含むことがあります。
はじめに
C#ではstring型を使って文字列を扱うことができる。 本記事ではstringオブジェクトのプロパティとメソッド、および文字列と数値の変換についてまとめた。
対象とする環境は以下の通り。
- Visual Studio Community 2019 (Version 16.6.2)
- C# Version 8.0
string型の基本
C#におけるstring型は、System.Stringクラスのエイリアス(別名)である。
したがって、下の2行のコードは等価である。
|
|
文字列の宣言
文字列型の変数は、ダブルクォーテーション"
で囲んで宣言する。文字列には改行\n
のようなエスケープシーケンスを含めることができる。
|
|
出力
|
|
また、記述したままの状態を文字列として扱いたい場合は、先頭に@
を付けた逐語的文字列リテラルとする。
例えば、ファイルパスなどのように\
を含む文字列に対して、通常の文字列ではエスケープシーケンスを使って\
を\\
と記述する必要がある。
一方、逐語的文字列リテラルでは、\
のままパスとして解釈される。
|
|
string型のプロパティとメソッド
string型のプロパティは以下の通り。
プロパティ | 戻り値の型 | 説明 |
---|---|---|
Length | int | 文字列の長さ |
string型の主なメソッドは以下の通り。
プロパティ | 戻り値の型 | 説明 |
---|---|---|
CompareTo(string) | int | 文字列を比較 |
Contains(string) | bool | 文字列を含むか判定 |
Remove(int[, int]) | string | 指定した位置の文字を削除 |
Replace(string, string) | string | 指定した文字を置換 |
Split(string) | string[] | 指定した文字列で分割 |
ToLower() | string | 全て小文字にする |
ToUpper() | string | 全て大文字にする |
Trim() | string | 文字列の先頭と末尾の半角空白を削除 |
TrimStart() | string | 文字列の先頭の半角空白を削除 |
TrimEnd() | string | 文字列の末尾の半角空白を削除 |
CompareTo()
メソッドとRemove()
メソッドについて、以下で詳細を述べる。
文字列の比較(CompareTo)
strA.CompareTo(string strB)
メソッドでは、strA
とstrB
をアルファベット順に比較して以下の結果を返す。
文字列の順序 | CompareToの戻り値 |
---|---|
strA がstrB より先に来る |
-1 |
strA とstrB が等しい |
0 |
strA がstrB より後に来る |
1 |
例
|
|
なお、大文字は小文字より先に来ると判定される。
文字列の削除(Remove)
Remove(int startIndex, int count)
メソッドでは、startIndex
で指定した位置からcount
の数だけ文字を削除する。count
を指定しない場合は、最後の文字まで削除する。
|
|
文字列の結合
文字列を結合するには、以下の方法がある。
+
,+=
演算子String.Concat()
メソッドString.Joint()
メソッド
ただし、string型では一度作成したオブジェクトは変更することは出来ないため、文字列を結合すると、新たなstringオブジェクトが作成されることになる。
何度も文字列の変更を繰り返す場合には、StringBuilderクラスを使った方が効率が良い。
文字列と数値の変換
文字列を数値に変換する場合はParse()
メソッドを用いる。
|
|
反対に、数値を文字列に変換する場合はToString()
メソッドを用いる。文字列にするときの書式を指定することが可能。
|
|