この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

StringInfo.ParseCombiningCharacters メソッド (String)

 

公開日: 2016年10月

各基本文字、上位サロゲートまたは指定した文字列内の制御文字のインデックスを返します。

名前空間:   System.Globalization
アセンブリ:  mscorlib (mscorlib.dll 内)

public static int[] ParseCombiningCharacters(
	string str
)

パラメーター

str
Type: System.String

検索対象の文字列。

戻り値

Type: System.Int32[]

各基本文字、上位サロゲートまたは指定した文字列内の制御文字の 0 から始まるインデックスを含む整数の配列。

Exception Condition
ArgumentNullException

strnull です。

Unicode Standard 、一連のペアの最初の単位が上位サロゲートと下位のサロゲートです、2 つのコード単位で構成される単一の抽象文字のコード化文字表現としてサロゲート ペアを定義します。 上位サロゲート u+d800 から U+DBFF の範囲の Unicode コード ポイントであり、下位サロゲート u+dc00 から U+DFFF の範囲の Unicode コード ポイント。

制御文字は、文字の Unicode 値は U + 007F または U + 001F から u+0080 U + 009F からの範囲です。

.NET Framework では、単一の文字、つまり、書記素として表示されるテキストの単位としてテキスト要素を定義します。 テキストの要素は、基本文字、サロゲート ペアの場合、または組み合わせ文字シーケンスです。 Unicode Standard 組み合わせを定義する文字のシーケンスとして基本文字と 1 つまたは複数の組み合わせ文字の組み合わせ。 サロゲート ペアは、基本文字または組み合わせの文字を表すことができます。

場合は、組み合わせ文字シーケンスが有効でないそのシーケンス内のすべての組み合わせ文字も返されます。

結果の配列の各インデックスは、テキストの要素、つまり、基本文字または上位サロゲートのインデックスの先頭です。

各要素の長さは、連続するインデックス間の差として簡単に計算します。 配列の長さは常に文字列の長さ以下です。 このメソッドは、文字列"\u4f00\u302a\ud800\udc00\u4f01"を指定するには、0、2、および 4 のインデックスを返します。

.NET Framework version 2.0 以降、 SubstringByTextElements メソッドと LengthInTextElements プロパティによって提供される機能の使いやすい実装を提供する、 ParseCombiningCharacters メソッドです。

呼び出しを次のコード例に示します、 ParseCombiningCharacters メソッドです。 このコード例が示されている例の一部は、 StringInfo クラスです。

using System;
using System.Text;
using System.Globalization;

public sealed class App {
   static void Main() {
      // The string below contains combining characters.
      String s = "a\u0304\u0308bc\u0327";

      // Show each 'character' in the string.
      EnumTextElements(s);

      // Show the index in the string where each 'character' starts.
      EnumTextElementIndexes(s);
   }

   // Show how to enumerate each real character (honoring surrogates) in a string.
   static void EnumTextElements(String s) {
      // This StringBuilder holds the output results.
      StringBuilder sb = new StringBuilder();

      // Use the enumerator returned from GetTextElementEnumerator 
      // method to examine each real character.
      TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(s);
      while (charEnum.MoveNext()) {
         sb.AppendFormat(
           "Character at index {0} is '{1}'{2}",
           charEnum.ElementIndex, charEnum.GetTextElement(),
           Environment.NewLine);
      }

      // Show the results.
      Console.WriteLine("Result of GetTextElementEnumerator:");
      Console.WriteLine(sb);
   }

   // Show how to discover the index of each real character (honoring surrogates) in a string.
   static void EnumTextElementIndexes(String s) {
      // This StringBuilder holds the output results.
      StringBuilder sb = new StringBuilder();

      // Use the ParseCombiningCharacters method to 
      // get the index of each real character in the string.
      Int32[] textElemIndex = StringInfo.ParseCombiningCharacters(s);

      // Iterate through each real character showing the character and the index where it was found.
      for (Int32 i = 0; i < textElemIndex.Length; i++) {
         sb.AppendFormat(
            "Character {0} starts at index {1}{2}",
            i, textElemIndex[i], Environment.NewLine);
      }

      // Show the results.
      Console.WriteLine("Result of ParseCombiningCharacters:");
      Console.WriteLine(sb);
   }
}

// This code produces the following output.
//
// Result of GetTextElementEnumerator:
// Character at index 0 is 'a-"'
// Character at index 3 is 'b'
// Character at index 4 is 'c,'
// 
// Result of ParseCombiningCharacters:
// Character 0 starts at index 0
// Character 1 starts at index 3
// Character 2 starts at index 4

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: