|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectts.util.text.StringSequence
public final class StringSequence
文字列をコード・ポイント単位に順次アクセスするためのクラス。
Unicodeの補助文字の対応(JSR-204)により、文字とchar
変数が
必ずしも対応しなくなり、文字列操作におけるインデックスの扱いが複雑に
なった。このクラスは、そのインデックスの扱いを簡単にするための仕組みを
StringOperation
とともに用意する。
文字列中のインデックスを、コード・ポイントごとに進めたり戻したりして、
そのインデックスに位置する文字を取得したり、そのインデックスから開始する
部分文字列を取得したりすることができる。
インデックスの取り得る値の範囲は、-1〜n (n はコード・ポイント単位
の文字列長)であり、インデックスが-1又はnの場合は、それに
位置する文字として空文字列を返す。
先頭から文字を順番に取得する方法は、以下のように行うことができる:
上記の例は、いずれも同じ文字や文字列の値が得られる。
for (StringSequence seq = new StringSequence(aStr);
seq.validIndex(); seq.next()) {
String chStr = seq.character(); // 文字を順に取得。
String subStr = seq.substring(); // 現在のインデックスから開始する部分文字列を取得。
...
}
あるいは
StringSequence seq = new StringSequence(aStr, -1);
while (seq.hasNext()) {
seq.next();
String ch = seq.character(); // 文字を順に取得。
String subStr = seq.substring(); // 現在のインデックスから開始する部分文字列を取得。
...
}
あるいは
if (! StringOperation.isEmpty(aStr)) {
StringSequence seq = new StringSequence(aStr, -1);
do {
String chStr = StringOperation.characterAt(seq.index() + 1); // 文字を順に取得。
String subStr = seq.followingString(); // 現在のインデックスの次から開始する部分文字列を取得。
...
} while (seq.next().validIndex());
}
コンストラクタの概要 | |
---|---|
|
StringSequence(java.lang.String str)
操作対象の文字列を引数にとるコンストラクタ。 |
|
StringSequence(java.lang.String str,
int beginCodePointIndex)
操作対象の文字列と開始インデックスを引数にとるコンストラクタ。 |
protected |
StringSequence(StringSequence seq)
コピー・コンストラクタ。 |
メソッドの概要 | |
---|---|
java.lang.String |
character()
現在のインデックスに位置する文字を取得する。 |
boolean |
contains(java.lang.String searched)
現在のインデックスから文末までの部分文字列に、探索文字列が含まれているか どうかを判定する。 |
StringSequence |
copy()
このオブジェクトのコピーを作成する。 |
boolean |
endsWith(java.lang.String suffix)
現在のインデックスから文末までの部分文字列の末尾が、サフィックスと一致する かどうかを判定する。 |
boolean |
equals(java.lang.Object obj)
文字列の内容が等しいかどうかを確認する。 |
java.lang.String |
followingString()
現在のインデックスの次から開始する部分文字列を取得する。 |
java.lang.String |
followingString(StringSequence endSeq)
現在のインデックスの次から、指定された StringSequence の示すインデックスの前までの部分文字列を取得する。 |
int |
hashCode()
このオブジェクトのハッシュ・コード値を取得する。 |
boolean |
hasNext()
後続の文字が存在するかどうかを確認する。 |
boolean |
hasPrevious()
前に文字が存在するかどうかを確認する。 |
int |
index()
現在のインデックスを取得する。 |
int |
indexOf(java.lang.String searched)
現在のインデックスから文末までの文字列中で、探索文字列に最初に一致する インデックスを取得する。 |
int |
lastIndexOf(java.lang.String searched)
現在のインデックスから文末までの文字列中で、探索文字列に最後に一致する インデックスを取得する。 |
StringSequence |
next()
インデックスを、コード・ポイント1つ分次に進める。 |
StringSequence |
next(int codePointCount)
インデックスを、指定された文字数分だけ次に進める。 |
StringSequence |
nextUntil(java.lang.String searched)
指定された探索文字列が見つかるまで、インデックスを次に進める。 |
StringSequence |
previous()
インデックスをコード・ポイント1つ分前に戻す。 |
StringSequence |
previous(int codePointCount)
インデックスを、指定された文字数分だけ前に戻す。 |
int |
restLength()
現在のインデックスから文末までの文字列の長さを取得する。 |
StringSequence |
skipWhitespaces()
空白でない文字が現れるまで、インデックスを次に進める。 |
boolean |
startsWith(java.lang.String prefix)
現在のインデックスから文末までの部分文字列の先頭が、プリフィックスと一致 するかどうかを判定する。 |
java.lang.String |
startsWithOneOf(java.util.Collection<java.lang.String> strs)
現在のインデックスから文末までの部分文字列の先頭が、指定された文字列集合 の要素のいずれかと一致するかどうかを判定する。 |
StringSequence |
startsWithOneOf(java.util.Collection<StringSequence> seqs)
現在のインデックスから文末までの部分文字列の先頭が、指定された文字列集合 の要素のいずれかと一致するかどうかを判定する。 |
java.lang.String |
substring()
現在のインデックスから開始する部分文字列を取得する。 |
java.lang.String |
substring(StringSequence endSeq)
現在のインデックスから、指定された StringSequence の示すインデックスの前までの部分文字列を取得する。 |
boolean |
validIndex()
現在のインデックスが範囲内(0〜n、nはコード・ポイント単位の文字列長) にあるかどうかを確認する。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public StringSequence(java.lang.String str)
str
- 操作対象の文字列。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public StringSequence(java.lang.String str, int beginCodePointIndex) throws java.lang.IndexOutOfBoundsException
str
- 操作対象の文字列。beginCodePointIndex
- 開始インデックス。
java.lang.IndexOutOfBoundsException
- 開始インデックスが範囲外の場合。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。protected StringSequence(StringSequence seq)
seq
- StringSequence
オブジェクト。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。メソッドの詳細 |
---|
public StringSequence copy()
public boolean equals(java.lang.Object obj)
StringSequence
オブジェクトで
ない場合は常にfalseを返す。
java.lang.Object
内の equals
obj
- 比較を行うStringSequence
オブジェクト。
public int hashCode()
java.lang.Object
内の hashCode
public boolean validIndex()
public boolean hasNext()
public boolean hasPrevious()
public StringSequence next()
public StringSequence next(int codePointCount)
codePointCount
- 次に進める文字数。
public StringSequence previous()
public StringSequence previous(int codePointCount)
codePointCount
- 前に戻す文字数。
public int index()
public java.lang.String character()
public java.lang.String substring()
public java.lang.String substring(StringSequence endSeq) throws java.lang.IndexOutOfBoundsException
StringSequence
の示すインデックスの前までの部分文字列を取得する。
StringOperatin.substring(this.substring(), 0, endSeq.index())
endSeq
- 取得する部分文字列の終了インデックスを保持するStringSequence
オブジェクト。
java.lang.IndexOutOfBoundsException
- 引数のStringSequence
がこのオブジェクトよりも前のインデックスを指して
いる場合。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public java.lang.String followingString()
public java.lang.String followingString(StringSequence endSeq) throws java.lang.IndexOutOfBoundsException
StringSequence
の示すインデックスの前までの部分文字列を取得する。
StringOperatin.substring(this.substring(), 1, endSeq.index())
但し、現在のインデックスと引数のオブジェクトの示すインデックスが等しい場合
は空文字列を返す。
endSeq
- 取得する部分文字列の終了インデックスを保持するStringSequence
オブジェクト。
java.lang.IndexOutOfBoundsException
- 引数のStringSequence
がこのオブジェクトよりも前のインデックスを指して
いる場合。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public int restLength()
public int indexOf(java.lang.String searched)
this.index() + StringOperation.indexOf(this.substring(), searched)
searched
- 探索文字列。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public int lastIndexOf(java.lang.String searched)
this.index() + StringOperation.lastIndexOf(this.substring(), searched)
searched
- 探索文字列。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public boolean startsWith(java.lang.String prefix)
prefix
- プリフィックス。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public boolean endsWith(java.lang.String suffix)
suffix
- サフィックス。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public java.lang.String startsWithOneOf(java.util.Collection<java.lang.String> strs)
strs
- 文字列集合。
java.lang.AssertionError
- 引数がヌルの場合、又は文字列集合の中にヌル又は
空文字列が含まれている場合(デバッグ・モードのみ)。public StringSequence startsWithOneOf(java.util.Collection<StringSequence> seqs)
seqs
- 文字列集合。
java.lang.AssertionError
- 引数がヌルの場合、又は文字列集合の中にヌル又は
空文字列が含まれている場合(デバッグ・モードのみ)。public boolean contains(java.lang.String searched)
searched
- 探索文字列。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public StringSequence nextUntil(java.lang.String searched)
searched
- 探索文字列。
java.lang.AssertionError
- 引数がヌルの場合(デバッグ・モードのみ)。public StringSequence skipWhitespaces()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |