Package net.sf.saxon.tinytree
Class CharSlice
java.lang.Object
net.sf.saxon.tinytree.CharSlice
- All Implemented Interfaces:
Serializable
,CharSequence
This is an implementation of the JDK 1.4 CharSequence interface: it implements
a CharSequence as a view of an array. The implementation relies on the array
being immutable: as a minimum, the caller is required to ensure that the array
contents will not change so long as the CharSlice remains in existence.
This class should be more efficient than String because it avoids copying the
characters unnecessarily.
The methods in the class don't check their arguments. Incorrect arguments will
generally result in exceptions from lower-level classes.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchar
charAt
(int index) Returns the character at the specified index.void
copyTo
(char[] destination, int destOffset) Append the contents to another array at a given offset.boolean
Compare equalityint
hashCode()
Generate a hash codeint
indexOf
(char c) Get the index of a specific character in the sequence.int
length()
Returns the length of this character sequence.void
setLength
(int length) Set the length of this character sequence, without changing the array and start offset to which it is boundsubSequence
(int start, int end) Returns a new character sequence that is a subsequence of this sequence.substring
(int start, int end) Returns a new character sequence that is a subsequence of this sequence.toString()
Convert to a stringvoid
Write the value to a writerMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.CharSequence
chars, codePoints, isEmpty
-
Constructor Details
-
CharSlice
public CharSlice(char[] array) -
CharSlice
public CharSlice(char[] array, int start, int length)
-
-
Method Details
-
length
public int length()Returns the length of this character sequence. The length is the number of 16-bit Unicode characters in the sequence.- Specified by:
length
in interfaceCharSequence
- Returns:
- the number of characters in this sequence
-
setLength
public void setLength(int length) Set the length of this character sequence, without changing the array and start offset to which it is bound -
charAt
public char charAt(int index) Returns the character at the specified index. An index ranges from zero to length() - 1. The first character of the sequence is at index zero, the next at index one, and so on, as for array indexing.- Specified by:
charAt
in interfaceCharSequence
- Parameters:
index
- the index of the character to be returned- Returns:
- the specified character
- Throws:
IndexOutOfBoundsException
- if the index argument is negative or not less than length()
-
subSequence
Returns a new character sequence that is a subsequence of this sequence. The subsequence starts with the character at the specified index and ends with the character at index end - 1. The length of the returned sequence is end - start, so if start == end then an empty sequence is returned.- Specified by:
subSequence
in interfaceCharSequence
- Parameters:
start
- the start index, inclusiveend
- the end index, exclusive- Returns:
- the specified subsequence
- Throws:
IndexOutOfBoundsException
- if start or end are negative, if end is greater than length(), or if start is greater than end
-
toString
Convert to a string- Specified by:
toString
in interfaceCharSequence
- Overrides:
toString
in classObject
-
equals
Compare equality -
hashCode
public int hashCode()Generate a hash code -
indexOf
public int indexOf(char c) Get the index of a specific character in the sequence. Returns -1 if not found. This method mimicsString.indexOf(int)
- Parameters:
c
- the character to be found- Returns:
- the position of the first occurrence of that character, or -1 if not found.
-
substring
Returns a new character sequence that is a subsequence of this sequence. Unlike subSequence, this is guaranteed to return a String. -
copyTo
public void copyTo(char[] destination, int destOffset) Append the contents to another array at a given offset. The caller is responsible for ensuring that sufficient space is available.- Parameters:
destination
- the array to which the characters will be copieddestOffset
- the offset in the target array where the copy will start
-
write
Write the value to a writer- Throws:
IOException
-