注 - 多くのブラウザでは、TextArea select() 機能が正しく実装されていないようです。このアプレットが完全に動作するブラウザは、HotJava 1.0 ブラウザだけです。それ以外のブラウザでは、正しい選択動作を見ることはできません。
テキスト境界の解析によって、より洗練されたテキスト選択と、自然言語に基づくテキストの行の折り返しがプログラムで可能になります。ここで紹介する境界検出機能はすべて、高速化のためにテーブル駆動の状態マシンを使用しています。
このデモアプレットでは、次の 4 つのタイプのテキスト要素を連続して検出できます。右または左の矢印キーを押すと、次または前の要素が反転表示されます。
多くのテキスト編集アプリケーションでは、キーの組み合わせやトリプルクリックによって文を選択できます。ここで紹介する文の選択機構は、文脈上のピリオドやその他の句読記号を検知します。
デモの見方 | デモの方法 | ||||
---|---|---|---|---|---|
数字や略語の中にあるピリオドおよび、文末の引用符や括弧などの句読記号を正しく解釈して文が選択されること |
|
行の境界の解析では、行を折り返す場合に文字列中の改行可能な位置を判断します。
デモの見方 | デモの方法 | ||||||
---|---|---|---|---|---|---|---|
テキストを折り返す場合の、折り返し位置の判断。この機構はハイフンでつながれた単語と句読文字を正しく処理します。 |
|
ここでは紹介しませんが、境界機構ではローマ文字以外のスクリプトの改行処理も可能です。
単語境界の解析は、検索および置換機能や、ダブルクリックで単語を選択可能なテキスト編集アプリケーションで使用されます。
デモの見方 | デモの方法 | ||||||
---|---|---|---|---|---|---|---|
単語の中や後ろの句読文字が正しく解釈されて単語が選択されること。記号文字や句読文字など、単語の一部でない文字の両側は単語境界です。 |
|
文字境界の解析を使うと、文字列中でカーソルを移動させる場合など、文字単位の処理を行うことができます。
デモの見方 | デモの方法 | ||||||
---|---|---|---|---|---|---|---|
文字の格納方法にかかわらず、文字列中をカーソルが正確に移動すること。たとえば、アクセント記号付きの文字はベース文字と発音区別記号の 2 文字として格納されていることがあります。ユーザが何を 1 文字とみなすかは、言語によって異なります。 |
|
ここでは紹介しませんが、境界検出機構では、文字にスペースなしでアクセント記号と発音区別記号が続く場合、およびハングルとインド語派の音節の処理が可能です。
別のテキストをアプレットに入力して、別の種類の境界の選択も試してみてください。