net.sf.saxon.tinytree
Class CharSlice
java.lang.Object
net.sf.saxon.tinytree.CharSlice
- CharSequence, Serializable
public final class CharSlice
extends java.lang.Object
implements CharSequence, Serializable
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.
CharSlice(char[] array) - Create a CharSlice that maps to the whole of a char[] array
|
CharSlice(char[] array, int start, int length) - Create a CharSlice that maps to a section of a char[] array
|
char | 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 | equals(Object other) - Compare equality
|
int | hashCode() - Generate a hash code
|
int | 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 bound
|
CharSequence | subSequence(int start, int end) - Returns a new character sequence that is a subsequence of this sequence.
|
String | substring(int start, int end) - Returns a new character sequence that is a subsequence of this sequence.
|
String | toString() - Convert to a string
|
void | write(Writer writer) - Write the value to a writer
|
CharSlice
public CharSlice(char[] array)
Create a CharSlice that maps to the whole of a char[] array
CharSlice
public CharSlice(char[] array,
int start,
int length)
Create a CharSlice that maps to a section of a char[] array
array
- the char[] arraystart
- position of the first character to be includedlength
- number of characters to be included
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.
index
- the index of the character to be returned
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.
destination
- the array to which the characters will be copieddestOffset
- the offset in the target array where the copy will start
equals
public boolean equals(Object other)
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 mimics String.indexOf
c
- the character to be found
- the position of the first occurrence of that character, or -1 if not found.
length
public int length()
Returns the length of this character sequence. The length is the number
of 16-bit Unicode characters in the sequence.
- 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
length
- the new length of the CharSlice (which must be less than the existing length,
though this is not enforced)
subSequence
public CharSequence subSequence(int start,
int end)
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.
start
- the start index, inclusiveend
- the end index, exclusive
- the specified subsequence
substring
public String substring(int start,
int end)
Returns a new character sequence that is a subsequence of this sequence.
Unlike subSequence, this is guaranteed to return a String.
start
- position of the first character to be included (relative to the
start of the CharSlice, not the underlying array)end
- position of the first character not to be included (relative
to the start of the CharSlice)
- the substring, as a String object
toString
public String toString()
Convert to a string
write
public void write(Writer writer)
throws java.io.IOException
Write the value to a writer
writer
- the writer to be written to