public class Segment extends Object implements Cloneable, CharacterIterator, CharSequence
A segment of a character array representing a fragment of text. It should be treated as immutable even though the array is directly accessible. This gives fast access to fragments of text without the overhead of copying around characters. This is effectively an unprotected String.
The Segment implements the java.text.CharacterIterator interface to support use with the i18n support without copying text into a string.
public char[] array
This is the array containing the text of interest. This array should never be modified; it is available only for efficiency.
public int offset
This is the offset into the array that the desired text begins.
public int count
This is the number of array elements that make up the text of interest.
public Segment()
Creates a new segment.
public Segment(char[] array, int offset, int count)
Creates a new segment referring to an existing array.
array
- the array to refer tooffset
- the offset into the arraycount
- the number of characterspublic void setPartialReturn(boolean p)
Flag to indicate that partial returns are valid. If the flag is true, an implementation of the interface method Document.getText(position,length,Segment) should return as much text as possible without making a copy. The default state of the flag is false which will cause Document.getText(position,length,Segment) to provide the same return behavior it always had, which may or may not make a copy of the text depending upon the request.
p
- whether or not partial returns are valid.public boolean isPartialReturn()
Flag to indicate that partial returns are valid.
public String toString()
Converts a segment into a String.
toString
in interface CharSequence
toString
in class Object
public char first()
Sets the position to getBeginIndex() and returns the character at that position.
first
in interface CharacterIterator
getBeginIndex()
public char last()
Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.
last
in interface CharacterIterator
getEndIndex()
public char current()
Gets the character at the current position (as returned by getIndex()).
current
in interface CharacterIterator
getIndex()
public char next()
Increments the iterator's index by one and returns the character at the new index. If the resulting index is greater or equal to getEndIndex(), the current index is reset to getEndIndex() and a value of DONE is returned.
next
in interface CharacterIterator
public char previous()
Decrements the iterator's index by one and returns the character at the new index. If the current index is getBeginIndex(), the index remains at getBeginIndex() and a value of DONE is returned.
previous
in interface CharacterIterator
public char setIndex(int position)
Sets the position to the specified position in the text and returns that character.
setIndex
in interface CharacterIterator
position
- the position within the text. Valid values range from getBeginIndex() to getEndIndex(). An IllegalArgumentException is thrown if an invalid value is supplied.public int getBeginIndex()
Returns the start index of the text.
getBeginIndex
in interface CharacterIterator
public int getEndIndex()
Returns the end index of the text. This index is the index of the first character following the end of the text.
getEndIndex
in interface CharacterIterator
public int getIndex()
Returns the current index.
getIndex
in interface CharacterIterator
public char charAt(int index)
Returns the char
value at the specified index. An index ranges from zero to length() - 1
. The first char
value of the sequence is at index zero, the next at index one, and so on, as for array indexing.
If the char
value specified by the index is a surrogate, the surrogate value is returned.
charAt
in interface CharSequence
index
- the index of the char
value to be returnedchar
valuepublic int length()
Returns the length of this character sequence. The length is the number of 16-bit char
s in the sequence.
length
in interface CharSequence
char
s in this sequencepublic CharSequence subSequence(int start, int end)
Returns a CharSequence
that is a subsequence of this sequence. The subsequence starts with the char
value at the specified index and ends with the char
value at index end - 1
. The length (in char
s) of the returned sequence is end - start
, so if start == end
then an empty sequence is returned.
subSequence
in interface CharSequence
start
- the start index, inclusiveend
- the end index, exclusivepublic Object clone()
Creates a shallow copy.
clone
in interface CharacterIterator
clone
in class Object
Cloneable
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.