(クラス)
StringInterface 内に境界を配置するためのインターフェイスです。
説明
このクラスのオブジェクトによって見つかった境界は、文字の間に発生します。境界のインデックスが 0 の場合は、最初の文字の直前の位置を参照します。境界のインデックスが 1 の場合は、1 番目の文字の直後で 2 番目の文字の前の位置を参照します。境界のインデックスは、最後の文字の直後の位置を参照する
string のサイズと等しくなります。
導入:
バージョン 6.0
| コンストラクタ public | {StringBoundaryLocator.default} |
フィールド protected StringBoundaryLocator._index:
int
アクセサ public abstract StringBoundaryLocator.at-boundary?:
bool
アクセサ public StringBoundaryLocator.index:
int セッター public StringBoundaryLocator.index:
int
フィールド public-get protected-set StringBoundaryLocator.initial-index:
int
フィールド public-get protected-set StringBoundaryLocator.max-index:
int
フィールド public-get protected-set StringBoundaryLocator.min-index:
int
フィールド public StringBoundaryLocator.reverse?:
bool
フィールド public-get protected-set StringBoundaryLocator.string:
StringInterface =""
| public | {StringBoundaryLocator.read-one}:(val:int, eof?:bool) |
| reset: | self を初期の状態にリセットします。 |
| public | {StringBoundaryLocator.reset}:void |
| set-string: | 文字列(またはその文字列内の部分文字列)をこの境界ロケーターが操作する場所に設定します。 |
| public | {StringBoundaryLocator.set-string}:void |
(コンストラクタ)
| public | {StringBoundaryLocator.default} |
(フィールド)
protected StringBoundaryLocator._index:
int string 内の境界ロケーターの現在のインデックスです。
説明
導入:
バージョン 6.0
(アクセサ)
アクセサ public abstract StringBoundaryLocator.at-boundary?:
bool 現在のインデックスに境界があるかどうかを示します。
注意事項
境界が、
min-index や
max-index 上に存在する必要はありません。
ロケーターは、方向によって境界の振る舞いが異なる可能性があるため、
reverse? が変更される時に、
at-boundary? の値が変わる可能性があることに注意してください。
導入:
バージョン 6.0
(アクセサ)
アクセサ public StringBoundaryLocator.index:
int セッター public StringBoundaryLocator.index:
int string 内の境界ロケーターの現在のインデックスです。
説明
境界ロケーターのインデックスは、
min-index 以上かつ
max-index 以下でなければなりません。インデックスにこの範囲外の値が設定された場合、エラーがスローされます。
インデックスは境界上にはなりえません。インデックスが境界上かどうかを確認するために、
at-boundary? を使用してください。
導入:
バージョン 6.0
(フィールド)
public-get protected-set StringBoundaryLocator.initial-index:
int 境界ロケーターの初期インデックスです。
説明
導入:
バージョン 6.0
(フィールド)
public-get protected-set StringBoundaryLocator.max-index:
int コンストラクタで設定された、境界の最大インデックスです。
説明
境界ロケーターのインデックスは、この値以下でなければなりません。
最大のインデックスは、0 以上かつ
string の長さ以下でなければなりません。
導入:
バージョン 6.0
(フィールド)
public-get protected-set StringBoundaryLocator.min-index:
int 境界ロケーターの最小インデックスです。
説明
境界ロケーターのインデックスは、この値以上でなければなりません。
最小のインデックスは、0 以上かつ
string の長さ以下でなければなりません。
導入:
バージョン 6.0
(フィールド)
public StringBoundaryLocator.reverse?:
bool 境界ロケーターが反対に操作されるべきかどうかを示します。
説明
reverse? が
true の場合、
read-one を呼び出すとインデックスは増えずに減ります。
ロケーターは、方向によって境界の振る舞いが異なる可能性があるため、
reverse? が変更される時に、
at-boundary? の値が変わる可能性があることに注意してください。
導入:
バージョン 6.0
(フィールド)
(メソッド)
| public | {StringBoundaryLocator.read-one}:(val:int, eof?:bool) |
次の境界を配置します。
戻り値
追加の境界が配置されうる場合、インデックスはその境界へ移動され、戻り値は新しいインデックスと false になります。そうでなければ、インデックスは変わらずに、戻り値は古いインデックスと true になります。
説明
reverse? が
true の場合、
read-one を呼び出すとインデックスは増えずに減ります。
(メソッド)
| public | {StringBoundaryLocator.reset}:void |
self を初期の状態にリセットします。
説明
このメソッドが呼び出されると、次に続く self.read-one の呼び出しは self の作成後の最初の self.read-one の呼び出しで返されたのと同じ結果を返します。
(メソッド)
| public | {StringBoundaryLocator.set-string}:void |
文字列(またはその文字列内の部分文字列)をこの境界ロケーターが操作する場所に設定します。
min-index:
string 内の境界ロケーターの最小インデックスです。
max-index:
string 内の境界ロケーターの最大インデックスです。
initial-index:
string 内の境界ロケーターの初期インデックスです。
オーバーライド
このメソッドの既定の実装では、インデックスの不変性が保たれていることを保証します。このメソッドをオーバーライドしたサブクラスは、
super.set-string を呼び出すかそのような不変性の確認を自身で行う必要があります。
string は
WritableString になりえるため、このメソッドは文字列の値が変わった場合に呼び出される必要があります。このメソッドをオーバーライドしたサブクラスでは、
string を現在の値に設定するための呼び出しを無視することで最適化しようとしてはいけません。
導入:
バージョン 6.0