パッケージ | flash.globalization |
クラス | public final class Collator |
継承 | Collator Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
このクラスは、オペレーティングシステムによって提供される文字列比較サービスを使用します。 比較は、クラスインスタンスの作成時に提供されるロケール ID に基づいて異なります。ActionScript は Unicode 文字セットを使用して文字列を格納します。ブール値の文字列比較演算子(==、 !=、<、<=、>、>=)は、比較に Unicode コードポイントを使用します。ほとんどの場合、結果のソート順は特定の言語やロケールの規則と一致しないので、ユーザインタフェースに表示される文字列のソートに使用しないでください。 一方で、このクラスの comparison メソッドがこれらの規則に従う順序を提供します。
言語によってソート順が異なる例を次にいくつか示します。
- 英語では大文字の A の前に小文字の a、小文字の b の前に大文字の A の順に並びます。
- スウェーデン語では ö は z の後ですが、ドイツ語では ö は o の後です。
- スペイン語(トラディショナル)では、ch は 1 文字として、c と d の間にソートされます。
ソート順は、同じ言語およびロケール内でも使い方によって変わる場合があります。例えば、ドイツ語では、電話帳の名前のソート順と辞書の単語のソート順は違います。漢字(日本語と中国語で使用)には、発音や部首および画数によるソートなど、様々なソート方法があります。スペイン語とグルジア語では、モダンソートとトラディショナルソートの違いがあります。
このクラスの比較メソッドには、主に 2 つの使用モードがあります。このモードは、Collator()
コンストラクターの initialMode
パラメーターによって制御されます。デフォルトの「ソート」モードは、エンドユーザーに表示される項目をソートするためのモードです。このモードでは、より厳密な比較を行い、他の点では同じ項目が一貫した基準でソートされることを保証します。例えば、大文字と小文字は同じものとは見なされません。「照合」モードでは、比較基準はもっとゆるやかです。例えば、このモードでは大文字と小文字は同じものとして扱われます。これら 2 つのモードを示す例を次に示します。
var sortingCollator:Collator = new Collator("en-US", CollatorMode.SORTING); var words:Array = new Array("Airplane" , "airplane", "boat", "Boat"); words.sort(sortingCollator.compare); trace(words); var matchingCollator:Collator = new Collator("en-US", CollatorMode.MATCHING); if (matchingCollator.equals("Car", "car")) { trace("The words match!"); }
上記のようにロケール ID パラメーターをコンストラクターに提供した場合でも、照合動作は、ユーザーのオペレーティングシステムの設定や、要求されたロケールがサポートされていないときに代替のロケールが使用されるかどうかによって、ユーザーごとに異なる場合があります。
プロパティ | 定義元 | ||
---|---|---|---|
actualLocaleIDName : String [読み取り専用]
この Collator オブジェクトで使用される実際のロケール ID の名前。 | Collator | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
ignoreCase : Boolean
このプロパティが true に設定されている場合、同一のストリングおよび大文字と小文字の区別だけが違うストリングが、等しいストリングとして評価されます。 | Collator | ||
ignoreCharacterWidth : Boolean
このプロパティが true に設定されている場合、一部の中国語および日本語の文字の全角と半角の形が、等しい形として評価されます。 | Collator | ||
ignoreDiacritics : Boolean
このプロパティが true に設定されている場合、ストリングで使用されている基本文字が同じであれば、アクセントやその他の識別記号の違いがあっても、同じストリングと評価されます。 | Collator | ||
ignoreKanaType : Boolean
このプロパティが true に設定されている場合、カナ文字の種類のみが異なる文字列は、等しい文字列として扱われます。 | Collator | ||
ignoreSymbols : Boolean
このプロパティが true に設定されている場合、スペース、通貨記号、数学記号およびその他の種類の記号などの記号文字はソート時または照合時に無視されます。 | Collator | ||
lastOperationStatus : String [読み取り専用]
この Collator オブジェクトが実行した最新の操作のステータス。 | Collator | ||
numericComparison : Boolean
ストリングに埋め込まれた数値の、ストリングの比較時の取扱方法を制御します。 | Collator | ||
requestedLocaleIDName : String [読み取り専用]
この Collator オブジェクトのコンストラクターに渡された、要求されたロケール ID の名前。 | Collator |
メソッド | 定義元 | ||
---|---|---|---|
指定されたロケールの規則に従った文字列の比較を行うために、新しい Collator オブジェクトを構築します。 | Collator | ||
2 つの文字列を比較して、1 番目の文字列が 2 番目の文字列と比べて小さいか、等しいか、大きいかを示す整数値を返します。 | Collator | ||
2 つの文字列を比較して、文字列が等しいかどうかを示すブール値を返します。 | Collator | ||
[静的]
このクラスでサポートされているすべてのロケール ID 名のリストが表示されます。 | Collator | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
actualLocaleIDName | プロパティ |
actualLocaleIDName:String
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
この Collator オブジェクトで使用される実際のロケール ID の名前。
オペレーティングシステムおよび Collator()
コンストラクターに渡される requestedLocaleIDName
パラメーターの値に応じて、この名前の値には 3 つの可能性があります。
- 要求されたロケールが
LocaleID.DEFAULT
ではなく、要求されたロケールをオペレーティングシステムがサポートする場合、返される名前はrequestedLocaleIDName
プロパティと同じです。 LocaleID.DEFAULT
がコンストラクターに対するrequestedLocaleIDName
パラメーターの値として使用された場合、ユーザーのオペレーティングシステムによって指定された現在のロケールの名前が使用されます。LocaleID.DEFAULT
値により、ユーザーのカスタマイズした設定が OS に保持されます。requestedLocaleIDName
パラメーターとして明示的な値を渡した場合に、2 つのロケール ID 名が同じでもLocaleID.DEFAULT
を使用する場合と同じ結果になるとは限りません。ユーザーがマシンのロケール設定をカスタマイズし、LocaleID.DEFAULT
を使用するのではなく、明示的なロケール ID 名を要求した場合、アプリケーションがそれらのカスタマイズされた設定を取得しない場合があります。- システムがコンストラクターで指定された
requestedLocaleIDName
をサポートしていない場合、代替のロケール ID 名が提供されます。
実装
public function get actualLocaleIDName():String
関連する API エレメント
ignoreCase | プロパティ |
ignoreCase:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
このプロパティが true に設定されている場合、同一のストリングおよび大文字と小文字の区別だけが違うストリングが、等しいストリングとして評価されます。例えば、ignoreCase
プロパティが true
に設定されている場合、compare("ABC", "abc")
プロパティは true
を返します。
文字列の大文字と小文字の変換は、指定されたロケールのルールに従います。
ignoreCase
プロパティが false に設定されている場合、大文字と小文字の文字は互いに等しくなりません。
このプロパティに値が割り当てられ、エラーや警告がない場合、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティはLastOperationStatus クラスで定義された定数のいずれかに設定されます。
Collator()
コンストラクターの initialMode
パラメーターが Collator.MATCHING
に設定されるとき、デフォルト値は true
です。Collator()
コンストラクターの initialMode
パラメーターが Collator.SORTING
に設定されるとき、デフォルト値は false
です。
実装
public function get ignoreCase():Boolean
public function set ignoreCase(value:Boolean):void
関連する API エレメント
ignoreCharacterWidth | プロパティ |
ignoreCharacterWidth:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
このプロパティが true に設定されている場合、一部の中国語および日本語の文字の全角と半角の形が、等しい形として評価されます。
中国語と日本語の文字セットの既存の標準との互換性を保つために、Unicode では、一部の文字の全角と半角の両方に対応する文字コードを提供しています。例えば、ignoreCharacterWidth
プロパティが true
に設定されている場合、compare("Aア", "Aア")
は true
を返します。
ignoreCharacterWidth
プロパティが false
に設定されている場合、全角文字と半角文字はそれぞれ異なります。
このプロパティに値が割り当てられ、エラーや警告がない場合、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus クラスで定義された定数のいずれかに設定されます。
デフォルト値: false。
実装
public function get ignoreCharacterWidth():Boolean
public function set ignoreCharacterWidth(value:Boolean):void
関連する API エレメント
ignoreDiacritics | プロパティ |
ignoreDiacritics:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
このプロパティが true に設定されている場合、ストリングで使用されている基本文字が同じであれば、アクセントやその他の識別記号の違いがあっても、同じストリングと評価されます。例えば、ignoreDiacritics
プロパティが true
に設定されている場合、compare("coté", "côte")
は true
を返します。
ignoreDiacritics
が false
に設定されている場合、アクセントやその他の識別記号の違いがある基本文字は同じとは見なされません。
このプロパティに値が割り当てられ、エラーや警告がない場合、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus クラスで定義された定数のいずれかに設定されます。
デフォルト値: false。
実装
public function get ignoreDiacritics():Boolean
public function set ignoreDiacritics(value:Boolean):void
関連する API エレメント
ignoreKanaType | プロパティ |
ignoreKanaType:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
このプロパティが true に設定されている場合、カナ文字の種類のみが異なる文字列は、等しい文字列として扱われます。例えば、ignoreKanaType
プロパティが true
に設定されている場合、compare("カナ", "かな")
は true
を返します。
ignoreKanaType
が false
に設定されている場合、同じ音節のひらがな文字とカタカナ文字とは同じものになりません。
このプロパティに値が割り当てられ、エラーや警告がない場合、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus クラスで定義された定数のいずれかに設定されます。
デフォルト値: false。
実装
public function get ignoreKanaType():Boolean
public function set ignoreKanaType(value:Boolean):void
関連する API エレメント
ignoreSymbols | プロパティ |
ignoreSymbols:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
このプロパティが true に設定されている場合、スペース、通貨記号、数学記号およびその他の種類の記号などの記号文字はソート時または照合時に無視されます。例えば、「OBrian」、「O'Brian」および「O Brian」などの文字列は、ignoreSymbols
プロパティが true
に設定されている場合、同じ文字列として扱われます。
ignoreSymbols
プロパティが false に設定されている場合、記号はストリングの比較で考慮されます。
このプロパティに値が割り当てられ、エラーや警告がない場合、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus クラスで定義された定数のいずれかに設定されます。
デフォルト値: false。
実装
public function get ignoreSymbols():Boolean
public function set ignoreSymbols(value:Boolean):void
関連する API エレメント
lastOperationStatus | プロパティ |
lastOperationStatus:String
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
この Collator オブジェクトが実行した最新の操作のステータス。コンストラクターまたはこのクラスのメソッドが呼び出されたり、プロパティが設定されたりすると、必ず lastOperationStatus
が設定されます。有効な値については、各メソッドの説明を参照してください。
実装
public function get lastOperationStatus():String
関連する API エレメント
numericComparison | プロパティ |
numericComparison:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
ストリングに埋め込まれた数値の、ストリングの比較時の取扱方法を制御します。
numericComparison
プロパティが true
に設定されている場合、compare メソッドはストリング中の数字を比較用の数値に変換します。
このプロパティが false
に設定されている場合、比較は数字を文字コードとして扱い、指定されたロケールの文字ソートのルールに従ってソートします。
例えば、このプロパティがロケール ID「en-US」に対して true の場合、ストリング「version1」、「version10」および「version2」は version1 < version2 < version10 の順でソートされます。
このプロパティが「en-US」に対して false の場合、同じストリングが version1 < version10 < version2 の順でソートされます。
このプロパティに値が割り当てられ、エラーや警告がない場合、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus クラスで定義された定数のいずれかに設定されます。
デフォルト値: false。
実装
public function get numericComparison():Boolean
public function set numericComparison(value:Boolean):void
関連する API エレメント
requestedLocaleIDName | プロパティ |
requestedLocaleIDName:String
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
この Collator オブジェクトのコンストラクターに渡された、要求されたロケール ID の名前。
LocaleID.DEFAULT
値が使用された場合、返される名前は「i-default」です。代替のロケールが適用される場合、実際に使用されるロケールは要求されたロケールと異なる場合があります。 実際のロケール名は actualLocaleIDName
プロパティを使用して取得できます。
実装
public function get requestedLocaleIDName():String
関連する API エレメント
Collator | () | コンストラクター |
public function Collator(requestedLocaleIDName:String, initialMode:String = "sorting")
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
指定されたロケールの規則に従った文字列の比較を行うために、新しい Collator オブジェクトを構築します。
現在のオペレーティングシステムが requestedLocaleIDName
パラメーターで渡されるロケール ID をサポートしていない場合、代替のロケールが決められます。代替のロケールが使用されると、lastOperationStatus
プロパティが設定され、代替の種類が示されます。
initialMode
パラメーターの設定には、汎用の様々な照合オプションがあります。このパラメーターは、以下の値に設定できます。
CollatorMode.SORTING
:エンドユーザーに表示されるテキストストリングのリストをソートするなどの汎用の言語的なソートを使用するための照合オプションを設定します。このモードでは、ストリングの比較を行うときに、大文字と小文字の違いやアクセント付き文字など、ロケール固有の違いが考慮されます。CollatorMode.MATCHING
:2 つのストリングが等しいかどうかの判断などの汎用の照合オプションを設定します。このモードでは、ストリングの比較を行うときに、大文字と小文字の違い、アクセント付き文字などが無視されます。
ロケール ID 「en-US」(米国の英語)で CollatorMode.SORTING
オプションを設定して、Collator を使用して作成したソート済みのリストの例を次に示します。
上に示したように、すべての文字が別々の値を持つかのように扱われていますが、言語順にソートされています。
ロケール ID 「en-US」(米国の英語)で CollatorMode.MATCHING
オプションを設定して、Collator を使用して作成したソート済みのリストの例を次に示します。
上に示したように、一部の文字は言語順にソートされ、同じ文字値を持つものとして扱われています。
ソート順をさらに微調整するために、Collator.ignoreCase
や Collator.ignoreDiacritics
などの collator プロパティを変更できます。
参考のために、ロケールに依存しない標準の Array.sort()
を使用して行った対応するソートの例を次に示します。
上記のとおり、すべての文字が単純に Unicode の数値順にソートされています。これは言語的にはあまり意味がありません。
ユーザーの現在のオペレーティングシステム環境設定を使用するには、requestedLocaleIDName
パラメーターの値 LocaleID.DEFAULT
をコンストラクターに渡します。
ロケールによっては、ソート順のバリアントがあります。例えば、ドイツ語では、電話帳と辞書で使用されるソート順が異なります。中国語では、単語は通常、文字をぴん音に音訳することによってサポートされています。requestedLocaleIDName
パラメーターでコンストラクターに渡される文字列に「collation」キーワードを含めることによって、このような様々なソート順を選択することができます。
var germanPhonebook:LocaleID = new LocaleID("de-DE@collation=phonebook"); var chinesePinyin:LocaleID = new LocaleID("zh-Hant@collation=pinyin");
照合文字列の有効な値を次に示します。影響を受ける言語を括弧内に示してあります。
要求された照合タイプがホストプラットフォームでサポートされない場合は、代替の照合タイプが使用され、代替が選択されたことを示すように lastOperationStatus
プロパティが設定されます。次の例に示すように、actualLocaleIDName
プロパティを使用して、代替として使用された値を特定できます。
var collator:Collator = new Collator("fr-FR"); if (collator.lastOperationStatus == LastOperationStatus.USING_FALLBACK_WARNING) { trace ("Using fallback locale: " + collator.actualLocaleIDName); }
コンストラクターが正しく完了すると、lastOperationStatus
プロパティが次のように設定されます。
-
LastOperationStatus.NO_ERROR
要求されたロケール ID を使用できない場合、lastOperationStatus
プロパティは以下のいずれかに設定されます。
LastOperationStatus.USING_FALLBACK_WARNING
LastOperationStatus.USING_DEFAULT_WARNING
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus クラスで定義された定数のいずれかに設定されます。
上記の警告および lastOperationStatus
の有効な値について詳しくは、LastOperationStatus
クラスの説明を参照してください。
requestedLocaleIDName:String — この Collator オブジェクトで使用される String 。
| |
initialMode:String (default = "sorting ") — 初期照合モードを指定するストリング値。デフォルト値は CollatorMode.SORTING です。 利用可能なモードについては、CollatorMode クラスを参照してください。
|
例外
TypeError — requestedLocaleIDName パラメーターが null の場合。
| |
ArgumentError — requestedLocaleIDName パラメーターに無効な値が含まれる場合。
|
関連する API エレメント
compare | () | メソッド |
public function compare(string1:String, string2:String):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
2 つの文字列を比較して、1 番目の文字列が 2 番目の文字列と比べて小さいか、等しいか、大きいかを示す整数値を返します。この比較では、Collator()
コンストラクターで指定されたロケール ID のソート順ルールを使用します。
このメソッドが呼び出されて正しく完了すると、lastOperationStatus
プロパティが次のように設定されます。
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus
クラスで定義された定数のいずれかに設定されます。
パラメーター
string1:String — 最初の比較ストリング。
| |
string2:String — 2 番目の比較ストリング。
|
int — 1 番目の文字列が 2 番目の文字列と比べて小さいか、等しいか、大きいかを示す整数値。
|
例外
TypeError — 要求されたパラメーターが null の場合。
| |
ArgumentError — パラメーターに無効な値が含まれている場合。
|
関連する API エレメント
equals | () | メソッド |
public function equals(string1:String, string2:String):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
2 つの文字列を比較して、文字列が等しいかどうかを示すブール値を返します。この比較では、Collator()
コンストラクターで指定されたロケール ID のソート順ルールを使用します。
このメソッドが呼び出されて正しく完了すると、lastOperationStatus
プロパティが次のように設定されます。
LastOperationStatus.NO_ERROR
それ以外の場合、lastOperationStatus
プロパティは LastOperationStatus
クラスで定義された定数のいずれかに設定されます。
パラメーター
string1:String — 最初の比較ストリング。
| |
string2:String — 2 番目の比較ストリング。
|
Boolean — 文字列が等しい(true )か等しくない(false )かを示すブール値。
|
例外
TypeError — 要求されたパラメーターが null の場合。
| |
ArgumentError — パラメーターに無効な値が含まれている場合。
|
関連する API エレメント
getAvailableLocaleIDNames | () | メソッド |
- オペレーティングシステムのデフォルトのロケール ID(
LocaleID.DEFAULT
で指定)などのロケール ID 名の配列内を反復処理します。 - "sorting" モード(デフォルト)を使用して各ロケール ID の Collator オブジェクトを作成します。
- 要求された実際のロケール ID 名および
lastOperationStatus
プロパティの値が表示されるため、代替ロケールが使用されているかどうかを確認できます。 - 各 Collator オブジェクトを使用してデータ配列をソートし、ソート結果を表示します。ソート結果の並び順はロケールごとに異なります。
package { import flash.globalization.Collator; import flash.globalization.LocaleID; public class CollatorExample1 { public var col:Collator; public function CollatorExample1():void { var localeNames:Array = [LocaleID.DEFAULT, "de-DE", "sv-SE", "fr-FR", "lt-LT", "es-ES"]; var testSortData:Array = [ "y ", "i ", "k ", // Latvian "acxa ", "acha ", "adxa ", // es_traditional "n ", "ö ", "o ", "z ", "vu ", "wo ", // sw "däd ", "daed ", // de "öf ", "of ", // de_dictionary "côte ", "coté " // fr ]; for each (var localeName:String in localeNames) { col = new Collator(localeName); trace("LocaleID requested: " + col.requestedLocaleIDName + "; actual: " + col.actualLocaleIDName); trace("Last Operation Status: " + col.lastOperationStatus ); var result:Array = testSortData.sort(col.compare); trace ("sorted data: " + result); } } } }
- "matching" モードを使用して、ユーザーのデフォルトロケールの Collator オブジェクトを作成します。
- または、
Collator.ignoreDiacritics
プロパティをfalse
およびtrue
に設定します。 - 識別記号や大文字と小文字を含む文字列のセットを比較します。
Collator.ignoreDiacritics
およびCollator.ignoreCase
プロパティが変更されたときの比較の変化を示します。
package { import flash.display.Sprite; import flash.globalization.Collator; import flash.globalization.CollatorMode; import flash.globalization.LocaleID; public class CollatorExample2 extends Sprite { public var col:Collator; public var testMatchData:Array = ["cote", "Cote", "côte", "coté"]; public var wordToMatch:String = "Cote"; public function CollatorExample2() { col = new Collator( LocaleID.DEFAULT, CollatorMode.MATCHING ); trace("LocaleID requested: " + col.requestedLocaleIDName + "; actual: " + col.actualLocaleIDName); trace("Last Operation Status: " + col.lastOperationStatus ); trace('\n' + "ignoreCase = " + col.ignoreCase); trace("ignoreDiacritics = " + col.ignoreDiacritics); compareString(testMatchData, wordToMatch) // All variations of the word cote match col.ignoreDiacritics = false; trace('\n' + "ignoreDiacritics = false"); compareString(testMatchData, wordToMatch) // Variations with different diacritics will not match col.ignoreCase = false; trace('\n' + "ignoreCase = false"); compareString(testMatchData, wordToMatch) // Variations with different case will not match } private function compareString(stringArray:Array, keyword:String):void { for each(var s:String in stringArray) { if(col.equals(s, keyword)) { trace(keyword + " = " + s); } } } } }
Tue Jun 12 2018, 10:34 AM Z