
net.sf.saxon.regex.LatinString Maven / Gradle / Ivy
Show all versions of Saxon-HE Show documentation
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2015 Saxonica Limited. // This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. // If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. // This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// package net.sf.saxon.regex; /** * An implementation of UnicodeString optimized for strings that contain * no characters outside the Latin-1 range (i.e. no characters whose codepoints exceed 255). */ public final class LatinString extends UnicodeString { private byte[] chars; public final static LatinString EMPTY = new LatinString(new byte[0]); public final static LatinString SINGLE_SPACE = new LatinString(new byte[]{(byte) 0x20}); /** * Create a LatinString * @param src The string value. The caller must ensure that this contains no characters > 255 */ public LatinString(CharSequence src) { int len = src.length(); chars = new byte[len]; for (int i=0; i
s in the sequence. * * @return the number of255) { return -1; } else { for (int i = pos; i < chars.length; i++) { if ((chars[i] & 0xff) == search) { return i; } } return -1; } } public int uLength() { return chars.length; } public boolean isEnd(int pos) { return pos >= chars.length; } public String toString() { char[] expanded = new char[chars.length]; for (int i=0; i char char
s in this sequence */ public int length() { return chars.length; } /** * Returns thechar
value at the specified index. An index ranges from zero * to length() - 1. The firstchar
value of the sequence is at * index zero, the next at index one, and so on, as for array * indexing. * *If the
* * @param start the start index, inclusive * @param end the end index, exclusive * @return the specified subsequence * @throws IndexOutOfBoundsException if start or end are negative, * if end is greater than length(), * or if start is greater than end */ public CharSequence subSequence(int start, int end) { return uSubstring(start, end); } @Override public boolean equals(Object obj) { return super.equals(obj); //To change body of overridden methods use File | Settings | File Templates. } }char
value specified by the index is a * surrogate, the surrogate * value is returned. * * @param index the index of thechar
value to be returned * @return the specifiedchar
value * @throws IndexOutOfBoundsException if the index argument is negative or not less than * length() */ public char charAt(int index) { return (char)(chars[index] & 0xff); } /** * Returns a newCharSequence
that is a subsequence of this sequence. * The subsequence starts with thechar
value at the specified index and * ends with thechar
value at index end - 1. The length * (inchar
s) of the * returned sequence is end - start, so if start == end * then an empty sequence is returned.