String クラス

テキスト、つまり一連の Unicode 文字を表します。

この型のすべてのメンバの一覧については、String メンバ を参照してください。

System.Object
   System.String

<Serializable>
NotInheritable Public Class String   Implements IComparable, ICloneable, IConvertible, IEnumerable
[C#]
[Serializable]
public sealed class String : IComparable, ICloneable,   IConvertible, IEnumerable
[C++]
[Serializable]
public __gc __sealed class String : public IComparable,   ICloneable, IConvertible, IEnumerable
[JScript]
public
   Serializable
class String implements IComparable, ICloneable,   IConvertible, IEnumerable

スレッドセーフ

この型は、マルチスレッド操作に対して安全です。

解説

文字列とは Unicode 文字のシーケンシャル コレクションであり、一般にテキストを表すために使用されます。これに対して String は、 System.Char オブジェクトのシーケンシャル コレクションであり、文字列を表します。 String の値はシーケンシャル コレクションの内容であり、この値は変更できません。

String は、作成時点以降に値を変更できないことから、不変と呼ばれます。 String を変更するように見えるメソッドは、実際には変更内容が反映された新しい String を返します。文字列として使用されるオブジェクトの実際の内容を変更する必要がある場合には、 System.Text.StringBuilder クラスを使用してください。

文字列内の各 Unicode 文字は、Unicode のスカラ値によって定義されます。これは Unicode のコード ポイントまたは Unicode 文字の序数値とも呼ばれます。各コード ポイントは UTF-16 エンコーディングを使用してエンコードされ、エンコーディングの各要素の数値は Char で表されます。この結果として得られる、 Char オブジェクトのコレクションが、 String を構成します。

単一の Char は通常、単一のコード ポイントを表します。つまり、 Char の数値はコード ポイントと等しくなります。しかし、1 つのコード ポイントに対して、複数のエンコード要素が必要になることがあります。たとえば、Unicode の補助コード ポイント (サロゲート ペア) は、2 つの Char オブジェクトを使用してエンコードされます。

インデックスとは、 String 内での Unicode 文字の位置ではなく、 Char の位置を示すものです。インデックスは、0 を基準とし、文字列の先頭位置から始まる 0 以上の番号です。文字列の先頭がインデックス位置 0 になります。Unicode 文字は複数の Char としてエンコードされる場合があるため、連続したインデックス値が連続した Unicode 文字に対応するとは限りません。各 Char ではなく各 Unicode 文字を対象に処理を行うには、 System.Globalization.StringInfo クラスを使用します。

String のメンバは、 String に対して言語的または序数的な操作を実行します。序数的な操作は、各 Char オブジェクトの数値に基づいて動作します。言語的な操作は、カルチャ固有の大文字と小文字、並べ替え、書式、解析などの規則を考慮して、 String の値に基づいて動作します。言語的な操作は、カルチャが明確に宣言された場合はそのカルチャ、特に指定されなかった場合は現在のカルチャのコンテキストで実行されます。現在のカルチャの詳細については、「 CultureInfo.CurrentCulture 」を参照してください。

大文字と小文字の規則は、小文字から大文字への変換など、Unicode 文字の文字種を変換する方法を決定します。

書式指定規則は、値を文字列形式に変換する方法を決定します。一方、解析規則は、文字列形式で表されたものを値に変換する方法を決定します。

並べ替え規則は、Unicode 文字をアルファベット順に並べる方法と、2 つの文字列を相互に比較する方法を決定します。たとえば、 Compare メソッドは言語に基づく比較を行うのに対して、 CompareOrdinal メソッドは序数に基づく比較を行います。この結果として、現在のカルチャが英語 (U.S.) の場合、 Compare メソッドでは 'a' が 'A' より小さいと見なされますが、 CompareOrdinal メソッドでは、'a' は 'A' より大きいと見なされます。

.NET Framework では、単語、文字列、および序数での並べ替え規則がサポートされています。単語での並べ替えでは、英数字以外の特定の Unicode 文字には特別な重みが割り当てられる、カルチャに依存した文字列の比較が行われます。たとえば、ハイフン ("-") に割り当てられる重みは非常に小さいため、並べ替えられたリスト内の "coop" と "co-op" の出現位置は隣接します。文字列での並べ替えは、単語での並べ替えに似ていますが、例外的な処理が行われず、英数字以外のすべての記号が、すべての英数字の Unicode 文字よりも先になる点が違います。序数での並べ替えは、文字列内の各 Char の数値に基づいて文字列を比較します。単語、文字列、序数での並べ替え規則の詳細については、「 System.Globalization.CompareOptions 」を参照してください。

比較プロシージャと検索プロシージャでは、既定により大文字と小文字が区別されます。また、特に指定されない限り、これらのプロシージャでは現在のスレッドに関連付けられているカルチャが使用されます。定義上、空文字列 ("") を含むすべての文字列は null 参照よりも大きく、また 2 つの null 参照は互いに等しくなります。

アプリケーションで、比較や大文字/小文字の変換操作の結果に基づいてセキュリティの判定を行う場合、結果が現在のカルチャの値によって影響されることがないように、その操作ではインバリアント カルチャを使用する必要があります。詳細については、「 CultureInfo.InvariantCulture 」のトピックを参照してください。

比較には、 CompareCompareOrdinalCompareToEqualsEndsWith 、および StartsWith を使用します。文字列内の部分文字列や Unicode 文字のインデックスを取得するには、 IndexOfIndexOfAnyLastIndexOf 、および LastIndexOfAny を使用します。文字列や部分文字列を別の文字列または Char の配列にコピーするには、 CopyCopyTo を使用します。

元の文字列の一部分から 1 つ以上の新しい文字列を作成するには、 SubstringSplit を使用します。1 つ以上の部分文字列から新しい文字列を作成するには、 ConcatJoin を使用します。文字列の全体または一部を変更するには、 InsertReplaceRemovePadLeftPadRightTrimTrimEnd 、および TrimStart を使用します。

文字列内の Unicode 文字の大文字/小文字を変更するには、 ToLowerToUpper を使用します。文字列内の 1 つ以上のプレースホルダを 1 つ以上の値を表す文字列で置き換えるには、 Format を使用します。文字列内の Char オブジェクトの数を取得するには、 Length プロパティを使用します。文字列内の実際の Char オブジェクトにアクセスするには、 Chars を使用します。

String は、 IComparableICloneableIConvertible 、および IEnumerable インターフェイスを実装します。この型の明示的な IConvertible インターフェイス メンバの実装の代わりに、 Convert クラスを使用します。

必要条件

名前空間: System

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

String メンバ | System 名前空間 | IComparable | ICloneable | IConvertible | IEnumerable | System.Text.StringBuilder | CultureInfo | 書式設定の概要