文字列(String)の基本操作 [C#]

文字列の基本操作 C# String

目次

エスケープ文字一覧

C#の主なエスケープ文字(エスケープシーケンス)の一覧です。

文字の説明 エスケープシーケンス 備考
シングルクォーテーション「’」 \’
ダブルクォーテーション「”」 \”
バックスラッシュ「\」 \\
null文字 ¥0
ベル(警告音) \a
バックスペース \b
フォームフィード \f
改行(ラインフィード) \n
キャリッジリターン \r
改行(キャリッジリターンとラインフィード) \r\n
水平タブ \t
16進表記のUnicode文字 \u 「\u」の後に16進数4桁を記述する
16進表記のUnicode文字 \U 「\U」の後に16進数8桁を記述する
16進表記のASCII文字 \x 「\x」の後に16進数1~4桁を記述する
垂直タブ \v

逐語的リテラル文字列

リテラル文字列の前に「@」を置くことで逐語的文字列を扱うことができます。
以下の例ではエスケープが必要な「\」(バックスラッシュ)を逐語的文字列として記述しています。

補間文字列

リテラル文字列の前に「$」を置くことで補間文字列を扱うことができます。
補間文字列内では「{」と「}」で囲んだ部分で変数などを参照することができます。
以下の例では文字列の途中に変数str1の文字列を挿入しています。

文字列を改行する

文字列を改行するには、文字列の途中に「\r\n」を挿入します。

改行文字はEnvironmentクラスのNewLineプロパティで取得することもできます。

ダブルクォーテーション「”」を文字列として指定する

ダブルクォーテーション「”」を文字列としてに指定するにはエスケープ文字を使います。

文字列を長さ(文字数)を取得する

文字列の長さ(文字数)を取得するにはStringクラスのLengthプロパティを使用します。

文字列のバイト数を取得する

Encodingクラスを使用するにはSystem.Text名前空間のusingが必要です。

文字列を大文字に変換する

文字列を大文字に変換するにはStringクラスのToUpperメソッドを使用します。

文字列を小文字に変換する

文字列を大文字に変換するにはStringクラスのToLowerメソッドを使用します。

文字列が空文字列(長さ0)がどうかを調べる

文字列が空文字列がどうかを調べる方法はいくつかあります。
「==」演算子を使用して「””」と比較する方法、StringクラスのEmpty静的フィールドと比較する方法、StringクラスのEqualsメソッドで「””」やStringクラスのEmpty静的フィールドと比較する方法、文字列の長さが0であるかどうかを比較する方法などが考えられます。

文字列がNullまたは空文字列(長さ0)かどうかを調べる

文字列がNullまたは空文字列(長さ0)かどうかを調べるにはStringクラスのIsNullOrEmptyメソッドを使用します。

文字列がNullまたはWhiteSpaceかどうかを調べる

WhiteSpaceには半角スペース、全角スペース、改行文字、水平タブ文字などが含まれます。

文字列が等しいかどうかを調べる

2つの文字列が等しいかどうかは「==」演算子で比較方法、StringクラスのEqualsメソッドで比較する方法があります。

大文字と小文字を区別しないで等しいかどうかを調べる場合は、StringクラスのEqualsメソッドの引数にStringComparison列挙型のOrdinalIgnoreCaseを指定します。

StringComparison 列挙型には以下のメンバがあります。

名前 説明
CurrentCulture 0 カルチャに依存した並べ替え規則と、現在のカルチャを使用して、文字列を比較します。
CurrentCultureIgnoreCase 1 カルチャに依存した並べ替え規則と、現在のカルチャを使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。
InvariantCulture 2 カルチャに依存した並べ替え規則と、インバリアント カルチャを使用して、文字列を比較します。
InvariantCultureIgnoreCase 3 カルチャに依存した並べ替え規則と、インバリアント カルチャを使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。
Ordinal 4 序数 (バイナリ) の並べ替え規則を使用して文字列を比較します。
OrdinalIgnoreCase 5 序数 (バイナリ) の並べ替え規則を使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。

出典: StringComparison 列挙型

大文字と小文字を区別せずに比較する方法では、比較する2つの文字列を一旦大文字または小文字に変換した上で「==」演算子で比較する方法も考えられます。

文字列内の指定した文字列(部分文字列)の位置を取得する

文字列内の指定した文字列(部分文字列)の位置を取得するにはStringクラスのIndexOfメソッドを使用します。

IndexOfメソッドは文字列の先頭から最初に見つかった位置を取得しますが、文字列の末尾から最初(最後)に見つかった位置を取得する場合はStringクラスのLastIndexOfメソッドを使用します。

文字列内に指定した文字列(部分文字列)が含まれているかどうかを調べる

文字列内に指定した文字列(部分文字列)が含まれているかどうかを取得するにはStringクラスのContainsメソッドを使用します。

文字列の大小を比較する

2つの文字列の大小を比較するにはStringクラスのCompareToメソッド、またはStringクラスのCompare静的メソッドを使用します。

StringクラスのCompareToメソッドおよびCompare静的メソッドは、先の文字列(上記の例ではstr1)の方が小さければ-1を返します。後の文字列(上記の例ではstr2)が小さければ1(先の文字列が大きければ1)を返します。比較する文字列が同じ場合は0を返します。

文字列を置換する

文字列を置換するにはStringクラスのReplaceメソッドを使用します。

文字列を結合(連結)する

文字列を結合(連結)するには「+」演算子を使う方法や、StringクラスのConcat静的メソッドを使う方法が考えられます。

文字列の先頭が指定した文字列(部分文字列)かどうかを調べる

文字列の先頭が指定した文字列かどうかを調べるにはStringクラスのStartsWithメソッドを使用します。

StartsWithメソッドは第2引数にStringComparison列挙型のOrdinalIgnoreCaseを指定することで、大文字と小文字を区別せずに照合することができます。

文字列の末尾が指定した文字列(部分文字列)かどうかを調べる

文字列の先頭が指定した文字列かどうかを調べるにはStringクラスのEndsWithメソッドを使用します。

EndsWithメソッドは第2引数にStringComparison列挙型のOrdinalIgnoreCaseを指定することで、大文字と小文字を区別せずに照合することができます。

空白(半角スペース)または指定した文字で文字列の先頭を埋める

空白(半角スペース)または指定した文字で文字列の先頭(左)を埋めるにはStringクラスのPadLeftメソッドを使用します。
PadLeftメソッドは指定した文字数に達するまで半角スペースまたは指定した文字を埋め込みます。

PadLeftメソッドは引数に文字数のみが指定された場合に半角スペースを使用して文字を埋め込みます。

空白(半角スペース)または指定した文字で文字列の末尾を埋める

空白(半角スペース)または指定した文字で文字列の末尾(右)を埋めるにはStringクラスのPadRightメソッドを使用します。
PadRightメソッドは指定した文字数に達するまで半角スペースまたは指定した文字を埋め込みます。

PadRightメソッドは引数に文字数のみが指定された場合に半角スペースを使用して文字を埋め込みます。

文字列の前後にある特定の文字を削除(除去)する

文字列の前後にある特定の文字を削除(除去)するにはStringクラスのTrimメソッドを使用します。前にある文字列のみを削除する場合はStringクラスのTrimStartメソッドを使用します。後にある文字列のみを削除する場合はStringクラスのTrimEndメソッドを使用します。

Trimメソッド、TrimStartメソッド、TrimEndメソッドの各メソッドは削除する文字を指定して実行することもできます。

文字列の指定した位置にある文字列(部分文字列)を取得する

文字列の指定した位置にある文字列(部分文字列)を取得するにはStringクラスのSubstringメソッドを使用します。

文字列の指定した位置に文字列(部分文字列)を挿入する

文字列の指定した位置に文字列(部分文字列)を挿入するにはStringクラスのInsertメソッドを使用します。

文字列の指定した位置にある文字列(部分文字列)を削除(除去)する

文字列の指定した位置にある文字列(部分文字列)を削除(除去)するにはStringクラスのRemoveメソッドを使用します。

区切り文字を指定してStringのコレクションを結合(連結)する

Stringの配列やリスト(List<String&gt)などのStringのコレクションの要素(メンバー)を結合(連結)するにはStringクラスのJoin静的メソッドを使用します。
Joinメソッドでは文字列を結合する際に使用する区切り文字を指定して結合(連結)することができます。

区切り文字を空文字列にすることで、Stringのコレクションの要素(メンバー)を単純に結合(連結)することができます。

指定した区切り文字で文字列を分割する

指定した区切り文字で文字列を分割するにはStringクラスのSplitメソッドを使用します。
Splitメソッドは分割した文字列を要素(メンバー)に持つStringの配列を返します。

文字列を文字(Char)の配列に変換する

文字列を文字(Char)の配列に変換するにはStringクラスのToCharArrayメソッドを使用します。

オブジェクトの値を指定した書式で文字列に変換する

オブジェクトの値を指定した書式で文字列に変換するにはStringクラスのFormat静的メソッドを使用します。