string
「string」の意味
「string」は、一般的に細長い糸や紐を指す言葉である。また、コンピュータプログラミングの文脈では、文字列を意味する。文字列とは、文字や記号が連なったデータのことで、プログラム内でテキスト情報を扱う際に用いられる。「string」の発音・読み方
「string」の発音は、IPA表記では /strɪŋ/ であり、カタカナ表記では「ストリング」となる。日本人が発音するカタカナ英語では「ストリング」と読むことが一般的である。発音によって意味や品詞が変わる単語ではない。「string」の定義を英語で解説
A string is a thin piece of rope, cord, or twine that is used for tying, fastening, or pulling things. In computer programming, a string is a sequence of characters, which is used to represent and manipulate text information within a program.「string」の類語
「string」の類語には、rope(ロープ)、cord(コード)、twine(ツイン)、thread(スレッド)などがある。これらの言葉は、細長い糸や紐を指す点で共通しているが、それぞれの素材や用途が異なる場合がある。「string」に関連する用語・表現
「string」に関連する用語や表現には、string instrument(弦楽器)、string theory(弦理論)、string quartet(弦楽四重奏)などがある。これらの用語は、「string」が含まれていることから、細長い糸や紐に関連する概念やアイデアを表している。「string」の例文
1. Tie the string tightly around the package.(荷物にひもをしっかりと結ぶ)2. The cat played with a ball of string.(猫は毛糸の玉で遊んだ)
3. The violin is a string instrument.(バイオリンは弦楽器である)
4. In programming, a string is a sequence of characters.(プログラミングでは、文字列は文字の並びである)
5. String theory is a theoretical framework in physics.(弦理論は物理学の理論的枠組みである)
6. She wore a string of pearls around her neck.(彼女は首に真珠のネックレスをつけていた)
7. The string quartet performed beautifully.(弦楽四重奏は見事な演奏をした)
8. The balloon was attached to a long string.(風船は長いひもにつながれていた)
9. He pulled the string to open the curtains.(彼はカーテンを開けるためにひもを引っ張った)
10. The program concatenates two strings.(プログラムは2つの文字列を連結する)
ストリング【string】
String クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class String Implements IComparable, ICloneable, IConvertible, IComparable(Of String), _ IEnumerable(Of String), IEnumerable, IEquatable(Of String)
[SerializableAttribute] [ComVisibleAttribute(true)] public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<string>, IEnumerable, IEquatable<string>
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class String sealed : IComparable, ICloneable, IConvertible, IComparable<String^>, IEnumerable<String^>, IEnumerable, IEquatable<String^>
文字列は、テキストを表現するために使用される Unicode 文字のシーケンシャル コレクションです。String オブジェクトは、文字列を表す System.Char オブジェクトのシーケンシャル コレクションです。String オブジェクトの値はシーケンシャル コレクションの内容であり、この値は変更できません。
String オブジェクトは、作成時点以降に値を変更できないことから、不変 (読み取り専用) と呼ばれます。String オブジェクトを変更するように見えるメソッドは、実際には変更内容が反映された新しい String オブジェクトを返します。文字列として使用されるオブジェクトの実際の内容を変更する必要がある場合には、System.Text.StringBuilder クラスを使用してください。
文字列内の各 Unicode 文字は、Unicode のスカラ値によって定義されます。これは Unicode のコード ポイントまたは Unicode 文字の序数値とも呼ばれます。各コード ポイントは UTF-16 エンコーディングを使用してエンコードされ、エンコーディングの各要素の数値は Char オブジェクトで表されます。
単一の 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 文字よりも先になる点が違います。
カルチャに依存した比較とは、CultureInfo.InvariantCulture プロパティによって指定されるインバリアント カルチャを含む、CultureInfo オブジェクトを明示的または暗黙的に使用する比較です。現在の暗黙のカルチャは、Thread.CurrentCulture プロパティによって指定されます。
序数での並べ替えは、文字列内の各 Char オブジェクトの数値に基づいて文字列を比較します。序数に基づく比較では、1 つの文字の大文字形式と小文字形式でコード ポイントが異なるため、自動的に大文字と小文字が区別されます。ただし、大文字と小文字の区別が重要でないアプリケーションの場合は、大文字と小文字を区別しないで序数に基づく比較を行うように指定できます。これは、インバリアント カルチャを使用して文字列を大文字に変換し、その結果に対して序数に基づく比較を実行することと同じです。
単語、文字列、序数での並べ替え規則の詳細については、「System.Globalization.CompareOptions」を参照してください。
一般に、並べ替えには序数に基づく比較ではなく、カルチャに依存した比較が適しています。また、2 つの文字列が等価であるかどうかを判断する場合 (つまり ID の判別) には、カルチャに依存した比較ではなく、序数に基づく比較が適しています。
比較メソッドおよび検索メソッドの解説では、そのメソッドが大文字と小文字を区別するかどうか、およびカルチャに依存するかどうかを示します。定義上は、空文字列 ("") を含むすべての文字列は null 参照よりも大きいと評価され、また 2 つの null 参照は互いに等しいと評価されます。
一部の Unicode 文字には、組み合わせ文字や複合文字から成る、複数の等価なバイナリ表現が存在します。Unicode Standard では、同等のバイナリ表現が与えられたときに、結果的に同じ文字になるのであれば常に単一のバイナリ表現を返す、正規化と呼ばれるプロセスを定義しています。正規化は、それぞれ異なる規則に基づく複数のアルゴリズム (正規化形式) で実行されます。.NET Framework では、現在、C、D、KC、および KD 形式の正規化をサポートしています。通常、正規化された文字列のペアは、序数比較によって評価されます。
アプリケーションにおいて、シンボル識別子 (ファイル名や名前付きパイプなど) や永続化されたデータ (XML ファイルのテキスト ベースのデータなど) に関するセキュリティ上の判断を行う場合は、カルチャに依存した比較ではなく序数に基づく比較を使用する必要があります。序数に基づく比較では、比較する文字のバイナリ値に応じて結果が異なるだけですが、カルチャに依存した比較では、有効なカルチャによって結果が異なる可能性があるからです。
String クラスは、特定の機能 (String オブジェクトを比較する、String オブジェクトに含まれる文字または文字列のインデックスを返す、String オブジェクトの値をコピーする、文字列を分割または結合する、文字列の値を変更する、数値や日時、列挙値に書式を設定して文字列に変換する、文字列を正規化するなど) に特化した、さまざまなメンバを実装しています。
-
比較処理には、Compare、CompareOrdinal、CompareTo、Equals、EndsWith、StartsWith の各メソッドを使用します。
-
文字列内の部分文字列や Unicode 文字のインデックスを取得するには、IndexOf、IndexOfAny、LastIndexOf、LastIndexOfAny の各メソッドを使用します。
-
元の文字列の一部分から 1 つ以上の新しい文字列を作成するには、Substring メソッドと Split メソッドを使用します。1 つ以上の部分文字列から新しい文字列を作成するには、Concat メソッドと Join メソッドを使用します。
-
文字列の全体または一部を変更するには、Insert、Replace、Remove、PadLeft、PadRight、Trim、TrimEnd、および TrimStart を使用します。
-
文字列内の Unicode 文字の大文字/小文字を変更するには、ToLower、ToLowerInvariant、ToUpper、ToUpperInvariant の各メソッドを使用します。
-
文字列中に設定された書式項目のプレースホルダを、対応する数値、日付、時刻、または列挙値のテキスト表現に置き換えるには、Format を使用します。
-
文字列内の Char オブジェクトの数を取得するには、Length プロパティを使用します。文字列内の実際の Char オブジェクトにアクセスするには、Chars を使用します。
-
文字列が特定の正規形に正規化されているかを判定するには、IsNormalized メソッドを使用します。特定の正規形に正規化された文字列を作成するには、Normalize メソッドを使用します。
System.String
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (Char*)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
value が null ポインタの場合は、Empty インスタンスが初期化されます。
このコンストラクタは、Unicode 文字シーケンスを、指定したポインタの位置から null 文字 (16 進数で 0x00) までコピーします。
指定した配列が null で終わっていない場合、このコンストラクタの動作はシステムに依存します。たとえば、このような状況は、アクセス違反の原因となる可能性があります。
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (SByte*, Int32, Int32, Encoding)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
[CLSCompliantAttribute(false)] public String ( sbyte* value, int startIndex, int length, Encoding enc )
[CLSCompliantAttribute(false)] public: String ( signed char* value, int startIndex, int length, Encoding^ enc )
例外の種類 | 条件 |
---|---|
ArgumentNullException | value が null 参照 (Visual Basic では Nothing) です。 |
ArgumentOutOfRangeException | startIndex または length が 0 未満です。 または value + startIndex によって指定されるアドレスが、現在のプラットフォームで扱うことのできる範囲を超えたため、アドレス計算がオーバーフローしました。 または |
ArgumentException | value + startIndex によって指定されたアドレスが 64K 未満です。 または (value が enc の指定に基づいてエンコードされていると仮定すると) value では、String の新しいインスタンスを初期化できません。 |
AccessViolationException |
value パラメータには、enc の指定に基づいてエンコードされた文字列を表す配列へのポインタを指定する必要があります。
length がゼロの場合は、新しいインスタンスが空の文字列 ("") に初期化されます。
このコンストラクタは value の startIndex から (startIndex + length - 1) までの文字を処理します。
指定した範囲が、この一連の文字に割り当てられたメモリの外部にある場合、このコンストラクタの動作はシステムに依存します。たとえば、このような状況は、アクセス違反の原因となる可能性があります。
このコンストラクタを使用して UTF-8 String クラスのインスタンスを作成する方法を次の簡単なコード例で示します。
unsafe { String utfeightstring = null; sbyte [] asciiChars = new sbyte[] { 0x51,0x52,0x53,0x54,0x54,0x56 }; UTF8Encoding encoding = new UTF8Encoding(true, true); // Instruct the Garbage Collector not to move the memory fixed(sbyte* pAsciiChars = asciiChars) { utfeightstring = new String(pAsciiChars,0,asciiChars.Length ,encoding); } Console.WriteLine("The UTF8 String is " + utfeightstring ); // prints "QRSTTV" }
char asciiChars[6] = {0x51,0x52,0x53,0x54,0x54,0x56}; char * pstr6 = &asciiChars[ 0 ]; UTF8Encoding^ encoding = gcnew UTF8Encoding( true,true ); String^ utfeightstring = gcnew String( pstr6,0,sizeof(asciiChars),encoding ); // prints "QRSTTV" Console::WriteLine( String::Concat( "The UTF8 String is ", utfeightstring ) );
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (SByte*, Int32, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外の種類 | 条件 |
---|---|
ArgumentNullException | value が null 参照 (Visual Basic では Nothing) です。 |
ArgumentOutOfRangeException | startIndex または length が 0 未満です。 または value + startIndex によって指定されるアドレスが、現在のプラットフォームで扱うことのできる範囲を超えたため、アドレス計算がオーバーフローしました。 または |
ArgumentException | value + startIndex によって指定されたアドレスが 64K 未満です。 または (value が ASCII でエンコードされていると仮定すると) value では、String の新しいインスタンスを初期化できません。 |
AccessViolationException |
value パラメータは、ASCII エンコードの文字列を表す配列へのポインタを指定する必要があります。つまり、文字列は、ANSI コード ページを使ってエンコードされます。
length がゼロの場合は、新しいインスタンスが空の文字列 ("") に初期化されます。
このコンストラクタは value の startIndex から (startIndex + length - 1) までの文字を処理します。
指定した範囲が、この一連の文字に割り当てられたメモリの外部にある場合、このコンストラクタの動作はシステムに依存します。たとえば、このような状況は、アクセス違反の原因となる可能性があります。
このコンストラクタを使用して String クラスのインスタンスを作成する方法を次の簡単なコード例で示します。
unsafe { // Null terminated ASCII characters in an sbyte array String szAsciiUpper = null; sbyte[] sbArr1 = new sbyte[] { 0x41, 0x42, 0x43, 0x00 }; // Instruct the Garbage Collector not to move the memory fixed(sbyte* pAsciiUpper = sbArr1) { szAsciiUpper = new String(pAsciiUpper); } String szAsciiLower = null; sbyte[] sbArr2 = { 0x61, 0x62, 0x63, 0x00 }; // Instruct the Garbage Collector not to move the memory fixed(sbyte* pAsciiLower = sbArr2) { szAsciiLower = new String(pAsciiLower, 0, sbArr2.Length); } // Prints "ABC abc" Console.WriteLine(szAsciiUpper + " " + szAsciiLower); // Compare Strings - the result is true Console.WriteLine("The Strings are equal when capitalized ? " + (String.Compare(szAsciiUpper.ToUpper(), szAsciiLower.ToUpper())==0?"true":"false") ); // This is the effective equivalent of another Compare method, which ignores case Console.WriteLine("The Strings are equal when capitalized ? " + (String.Compare(szAsciiUpper, szAsciiLower, true)==0?"true":"false") ); }
// Null terminated ASCII characters in a simple char array char charArray3[4] = {0x41,0x42,0x43,0x00}; char * pstr3 = &charArray3[ 0 ]; String^ szAsciiUpper = gcnew String( pstr3 ); char charArray4[4] = {0x61,0x62,0x63,0x00}; char * pstr4 = &charArray4[ 0 ]; String^ szAsciiLower = gcnew String( pstr4,0,sizeof(charArray4) ); // Prints "ABC abc" Console::WriteLine( String::Concat( szAsciiUpper, " ", szAsciiLower ) ); // Compare Strings - the result is true Console::WriteLine( String::Concat( "The Strings are equal when capitalized ? ", (0 == String::Compare( szAsciiUpper->ToUpper(), szAsciiLower->ToUpper() ) ? (String^)"TRUE" : "FALSE") ) ); // This is the effective equivalent of another Compare method, which ignores case Console::WriteLine( String::Concat( "The Strings are equal when capitalized ? ", (0 == String::Compare( szAsciiUpper, szAsciiLower, true ) ? (String^)"TRUE" : "FALSE") ) );
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (SByte*)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
value パラメータは、ASCII エンコードの文字列を表す配列へのポインタを指定する必要があります。つまり、文字列は、ANSI コード ページを使ってエンコードされます。
このコンストラクタは、このポインタが指定する位置を先頭に、null 文字 (16 進 0x00) に達するまで value の文字をコピーします。
指定した配列が null で終わっていない場合、このコンストラクタの動作はシステムに依存します。たとえば、このような状況は、アクセス違反の原因となる可能性があります。
このコンストラクタを使用して String クラスのインスタンスを作成する方法を次の簡単なコード例で示します。
unsafe { // Null terminated ASCII characters in an sbyte array String szAsciiUpper = null; sbyte[] sbArr1 = new sbyte[] { 0x41, 0x42, 0x43, 0x00 }; // Instruct the Garbage Collector not to move the memory fixed(sbyte* pAsciiUpper = sbArr1) { szAsciiUpper = new String(pAsciiUpper); } String szAsciiLower = null; sbyte[] sbArr2 = { 0x61, 0x62, 0x63, 0x00 }; // Instruct the Garbage Collector not to move the memory fixed(sbyte* pAsciiLower = sbArr2) { szAsciiLower = new String(pAsciiLower, 0, sbArr2.Length); } // Prints "ABC abc" Console.WriteLine(szAsciiUpper + " " + szAsciiLower); // Compare Strings - the result is true Console.WriteLine("The Strings are equal when capitalized ? " + (String.Compare(szAsciiUpper.ToUpper(), szAsciiLower.ToUpper())==0?"true":"false") ); // This is the effective equivalent of another Compare method, which ignores case Console.WriteLine("The Strings are equal when capitalized ? " + (String.Compare(szAsciiUpper, szAsciiLower, true)==0?"true":"false") ); }
// Null terminated ASCII characters in a simple char array char charArray3[4] = {0x41,0x42,0x43,0x00}; char * pstr3 = &charArray3[ 0 ]; String^ szAsciiUpper = gcnew String( pstr3 ); char charArray4[4] = {0x61,0x62,0x63,0x00}; char * pstr4 = &charArray4[ 0 ]; String^ szAsciiLower = gcnew String( pstr4,0,sizeof(charArray4) ); // Prints "ABC abc" Console::WriteLine( String::Concat( szAsciiUpper, " ", szAsciiLower ) ); // Compare Strings - the result is true Console::WriteLine( String::Concat( "The Strings are equal when capitalized ? ", (0 == String::Compare( szAsciiUpper->ToUpper(), szAsciiLower->ToUpper() ) ? (String^)"TRUE" : "FALSE") ) ); // This is the effective equivalent of another Compare method, which ignores case Console::WriteLine( String::Concat( "The Strings are equal when capitalized ? ", (0 == String::Compare( szAsciiUpper, szAsciiLower, true ) ? (String^)"TRUE" : "FALSE") ) );
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (Char*, Int32, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外の種類 | 条件 |
---|---|
ArgumentOutOfRangeException | startIndex または length が 0 より小さいか、value + startIndex によってポインタ オーバーフローが発生するか、または現在のプロセスがアドレス指定する文字すべてのアクセス権を持っていません。 |
ArgumentNullException | value が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | value が 無効な Unicode 文字を含む配列を指定しているか、 value + startIndex が 64000 よりも小さいアドレスを指定しています。 |
length が 0 の場合は、Empty インスタンスが初期化されます。
このコンストラクタは value の startIndex から (startIndex + length - 1) までの Unicode 文字をコピーします。
指定した範囲が、この一連の文字に割り当てられたメモリの外部にある場合、このコンストラクタの動作はシステムに依存します。たとえば、このような状況は、アクセス違反の原因となる可能性があります。
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (Char[], Int32, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Dim value As Char() Dim startIndex As Integer Dim length As Integer Dim instance As New String(value, startIndex, length)
length が 0 の場合は、Empty インスタンスが初期化されます。
このコンストラクタは value の startIndex から (startIndex + length - 1) までの Unicode 文字をコピーします。
パフォーマンスに関する考慮事項テキスト ストリームを解析またはデコードするアプリケーションでは、一連の文字を文字列に変換するために、String コンストラクタまたは StringBuilder.Append メソッドが頻繁に使用されます。まったく同じ一連の文字が繰り返し出現する場合、その都度、同じ値を使って新しい文字列を作成していると、文字列を一度だけ作成して再利用した場合に比べ、メモリの消費が激しくなります。
まったく同じ一連の文字が出現することはわかっていても、具体的な中身を予測できない場合は、String コンストラクタで新しい String オブジェクトを作成するのではなく、ルックアップ テーブルの使用を検討してください。たとえば、XML のタグおよび属性を含むファイルから文字のストリームを読み込んで解析するアプリケーションを考えてみます。このストリームを解析すると、特定のトークン (記号的意味合いを持つ一連の文字) が繰り返し出現します。XML ストリームでは、"0"、"1"、"true"、"false" などの文字列に相当するトークンが頻繁に現れる傾向があります。
出現する各トークンを新しい文字列に変換する代わりに、NameTable オブジェクトを作成して、よく使用される文字列を保持できます。NameTable オブジェクトは、格納された文字列を取得するときに一時メモリを割り当てないので、パフォーマンスが向上します。
アプリケーションはトークンを見つけると、NameTable.Get メソッドを使用してそのトークンをテーブルから取得しようとします。トークンが存在する場合、メソッドは対応する文字列を返します。トークンが存在しない場合は、NameTable.Add メソッドを使用して、トークンをテーブルに挿入します。トークンを挿入すると、メソッドは対応する文字列を返します。いずれの場合も、アプリケーションに適した文字列が返されます。
このコンストラクタを使用して String クラスのインスタンスを作成する方法を次の簡単なコード例で示します。
// Create a Unicode String with 5 Greek Alpha characters String szGreekAlpha = new String('\u0319',5); // Create a Unicode String with a Greek Omega character String szGreekOmega = new String(new char [] {'\u03A9','\u03A9','\u03A9'},2,1); String szGreekLetters = String.Concat(szGreekOmega, szGreekAlpha, szGreekOmega.Clone()); // Examine the result Console.WriteLine(szGreekLetters); // The first index of Alpha int ialpha = szGreekLetters.IndexOf('\u0319'); // The last index of Omega int iomega = szGreekLetters.LastIndexOf('\u03A9'); Console.WriteLine("The Greek letter Alpha first appears at index " + ialpha + " and Omega last appears at index " + iomega + " in this String.");
// Create a Unicode String with 5 Greek Alpha characters String^ szGreekAlpha = gcnew String( L'\x0319',5 ); // Create a Unicode String with a Greek Omega character wchar_t charArray5[3] = {L'\x03A9',L'\x03A9',L'\x03A9'}; String^ szGreekOmega = gcnew String( charArray5,2,1 ); String^ szGreekLetters = String::Concat( szGreekOmega, szGreekAlpha, szGreekOmega->Clone() ); // Examine the result Console::WriteLine( szGreekLetters ); // The first index of Alpha int ialpha = szGreekLetters->IndexOf( L'\x0319' ); // The last index of Omega int iomega = szGreekLetters->LastIndexOf( L'\x03A9' ); Console::WriteLine( String::Concat( "The Greek letter Alpha first appears at index ", Convert::ToString( ialpha ) ) ); Console::WriteLine( String::Concat( " and Omega last appears at index ", Convert::ToString( iomega ), " in this String." ) );
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ
オーバーロードの一覧
String コンストラクタ (Char[])
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説
使用例
このコンストラクタを使用して String クラスのインスタンスを作成する方法を次の簡単なコード例で示します。
// Unicode Mathematical operators char [] charArr1 = {'\u2200','\u2202','\u200F','\u2205'}; String szMathSymbols = new String(charArr1); // Unicode Letterlike Symbols char [] charArr2 = {'\u2111','\u2118','\u2122','\u2126'}; String szLetterLike = new String (charArr2); // Compare Strings - the result is false Console.WriteLine("The Strings are equal? " + (String.Compare(szMathSymbols, szLetterLike)==0?"true":"false") );
// Unicode Mathematical operators wchar_t charArray1[4] = {L'\x2200',L'\x2202',L'\x200F',L'\x2205'}; wchar_t * lptstr1 = &charArray1[ 0 ]; String^ wszMathSymbols = gcnew String( lptstr1 ); // Unicode Letterlike Symbols wchar_t charArray2[4] = {L'\x2111',L'\x2118',L'\x2122',L'\x2126'}; wchar_t * lptstr2 = &charArray2[ 0 ]; String^ wszLetterLike = gcnew String( lptstr2 ); // Compare Strings - the result is false Console::WriteLine( String::Concat( L"The Strings are equal? ", (0 == String::Compare( wszLetterLike, wszMathSymbols ) ? (String^)"TRUE" : "FALSE") ) );
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String コンストラクタ (Char, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外
解説
使用例
このコンストラクタを使用して String クラスのインスタンスを作成する方法を次の簡単なコード例で示します。
// Create a Unicode String with 5 Greek Alpha characters String szGreekAlpha = new String('\u0319',5); // Create a Unicode String with a Greek Omega character String szGreekOmega = new String(new char [] {'\u03A9','\u03A9','\u03A9'},2,1); String szGreekLetters = String.Concat(szGreekOmega, szGreekAlpha, szGreekOmega.Clone()); // Examine the result Console.WriteLine(szGreekLetters); // The first index of Alpha int ialpha = szGreekLetters.IndexOf('\u0319'); // The last index of Omega int iomega = szGreekLetters.LastIndexOf('\u03A9'); Console.WriteLine("The Greek letter Alpha first appears at index " + ialpha + " and Omega last appears at index " + iomega + " in this String.");
// Create a Unicode String with 5 Greek Alpha characters String^ szGreekAlpha = gcnew String( L'\x0319',5 ); // Create a Unicode String with a Greek Omega character wchar_t charArray5[3] = {L'\x03A9',L'\x03A9',L'\x03A9'}; String^ szGreekOmega = gcnew String( charArray5,2,1 ); String^ szGreekLetters = String::Concat( szGreekOmega, szGreekAlpha, szGreekOmega->Clone() ); // Examine the result Console::WriteLine( szGreekLetters ); // The first index of Alpha int ialpha = szGreekLetters->IndexOf( L'\x0319' ); // The last index of Omega int iomega = szGreekLetters->LastIndexOf( L'\x03A9' ); Console::WriteLine( String::Concat( "The Greek letter Alpha first appears at index ", Convert::ToString( ialpha ) ) ); Console::WriteLine( String::Concat( " and Omega last appears at index ", Convert::ToString( iomega ), " in this String." ) );
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
String フィールド
String プロパティ
String メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
System.Collections.Generic.IEnumerable<System.Char>.GetEnumerator | 現在の String オブジェクトを反復処理する列挙子を返します。 | |
System.Collections.IEnumerable.GetEnumerator | 現在の String オブジェクトを反復処理する列挙子を返します。 | |
System.IConvertible.ToBoolean | 現在の String オブジェクトの値をブール値に変換します。 | |
System.IConvertible.ToByte | 現在の String オブジェクトの値を 8 ビット符号なし整数に変換します。 | |
System.IConvertible.ToChar | 長さ 1 の空以外の文字列を Char オブジェクトに変換します。 | |
System.IConvertible.ToDateTime | 現在の String オブジェクトの値を日時値に変換します。 | |
System.IConvertible.ToDecimal | 現在の String オブジェクトの値を 10 進数に変換します。 | |
System.IConvertible.ToDouble | 現在の String オブジェクトの値を、倍精度浮動小数点数に変換します。 | |
System.IConvertible.ToInt16 | 現在の String オブジェクトの値を 16 ビット符号付き整数に変換します。 | |
System.IConvertible.ToInt32 | 現在の String オブジェクトの値を 32 ビット符号付き整数に変換します。 | |
System.IConvertible.ToInt64 | 現在の String オブジェクトの値を 64 ビット符号付き整数に変換します。 | |
System.IConvertible.ToSByte | 現在の String オブジェクトの値を 8 ビット符号付き整数に変換します。 | |
System.IConvertible.ToSingle | 現在の String オブジェクトの値を、単精度浮動小数点数に変換します。 | |
System.IConvertible.ToType | 現在の String オブジェクトの値を、指定された型のオブジェクトに変換します。 | |
System.IConvertible.ToUInt16 | 現在の String オブジェクトの値を 16 ビット符号なし整数に変換します。 | |
System.IConvertible.ToUInt32 | 現在の String オブジェクトの値を 32 ビット符号なし整数に変換します。 | |
System.IConvertible.ToUInt64 | 現在の String オブジェクトの値を 64 ビット符号なし整数に変換します。 |
String メンバ
String データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック フィールド
パブリック プロパティ
パブリック メソッド
名前 | 説明 | |
---|---|---|
System.Collections.Generic.IEnumerable<System.Char>.GetEnumerator | 現在の String オブジェクトを反復処理する列挙子を返します。 | |
System.Collections.IEnumerable.GetEnumerator | 現在の String オブジェクトを反復処理する列挙子を返します。 | |
System.IConvertible.ToBoolean | 現在の String オブジェクトの値をブール値に変換します。 | |
System.IConvertible.ToByte | 現在の String オブジェクトの値を 8 ビット符号なし整数に変換します。 | |
System.IConvertible.ToChar | 長さ 1 の空以外の文字列を Char オブジェクトに変換します。 | |
System.IConvertible.ToDateTime | 現在の String オブジェクトの値を日時値に変換します。 | |
System.IConvertible.ToDecimal | 現在の String オブジェクトの値を 10 進数に変換します。 | |
System.IConvertible.ToDouble | 現在の String オブジェクトの値を、倍精度浮動小数点数に変換します。 | |
System.IConvertible.ToInt16 | 現在の String オブジェクトの値を 16 ビット符号付き整数に変換します。 | |
System.IConvertible.ToInt32 | 現在の String オブジェクトの値を 32 ビット符号付き整数に変換します。 | |
System.IConvertible.ToInt64 | 現在の String オブジェクトの値を 64 ビット符号付き整数に変換します。 | |
System.IConvertible.ToSByte | 現在の String オブジェクトの値を 8 ビット符号付き整数に変換します。 | |
System.IConvertible.ToSingle | 現在の String オブジェクトの値を、単精度浮動小数点数に変換します。 | |
System.IConvertible.ToType | 現在の String オブジェクトの値を、指定された型のオブジェクトに変換します。 | |
System.IConvertible.ToUInt16 | 現在の String オブジェクトの値を 16 ビット符号なし整数に変換します。 | |
System.IConvertible.ToUInt32 | 現在の String オブジェクトの値を 32 ビット符号なし整数に変換します。 | |
System.IConvertible.ToUInt64 | 現在の String オブジェクトの値を 64 ビット符号なし整数に変換します。 |
ストリング
(string から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/11/09 18:08 UTC 版)
ストリング (string)
- 1 ストリングとは
- 2 ストリングの概要
「string」に関係したコラム
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)での時刻表示は、MT4のダウンロード先にもよりますが、一般的には中央ヨーロッパ時間であることが多いようです。日本時間の...
FXのチャート分析ソフトMT4をインストールしてまずやること
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)をインストールしたら、まずやっておきたいことをいくつか紹介します。これらは、あらかじめ設定しておくことで、MT4での操...
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のマルチタイムフレーム(Multi time frame、MTF)とは、1つのチャート画面に他の時間足のチャートを表示...
FXのチャート分析ソフトMT4で10分足や2時間足などを表示するには
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、次の時間足の表示ができます。ティック1分足5分足15分足30分足1時間足4時間足日足週足MT4では、10分足や1...
FXのチャート分析ソフトMT4のWilliams' Percent Rangeの見方
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のWilliams' Percent Rangeの見方を解説します。Williams' Percent Rangeは、...
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、インディケーターを起動中にある数値に達した時にメール通知することができます。メール通知をするには、MT4でのメー...
- stringのページへのリンク