/** * Resets this iterator to the start of the set. * @stable ICU 2.0 */ public void reset() { endRange = set.getRangeCount() - 1; range = 0; endElement = -1; nextElement = 0; if (endRange >= 0) { loadRange(range); } stringIterator = null; if (set.strings != null) { stringIterator = set.strings.iterator(); if (!stringIterator.hasNext()) { stringIterator = null; } } }
private static int[] codeRange(UnicodeSet set) { // codeRange = { numRanges, (start..end)* } int rangeCount = set.getRangeCount(); int[] codeRange = new int[1 + rangeCount * 2]; codeRange[0] = rangeCount; for (int i = 0, j = 1; i < rangeCount; ++i) { codeRange[j++] = set.getRangeStart(i); codeRange[j++] = set.getRangeEnd(i); } return codeRange; } }
/** * Returns the number of elements in this set (its cardinality) * Note than the elements of a set may include both individual * codepoints and strings. * * @return the number of elements in this set (its cardinality). * @stable ICU 2.0 */ public int size() { int n = 0; int count = getRangeCount(); for (int i = 0; i < count; ++i) { n += getRangeEnd(i) - getRangeStart(i) + 1; } return n + strings.size(); }
void checkDelimiters() { if (m_delimiters_ == null || m_delimiters_.size() == 0) { delims = new boolean[0]; } else { int maxChar = m_delimiters_.getRangeEnd(m_delimiters_.getRangeCount()-1); if (maxChar < 0x7f) { delims = new boolean[maxChar+1]; for (int i = 0, ch; -1 != (ch = m_delimiters_.charAt(i)); ++i) { delims[ch] = true; } } else { delims = null; } } } private boolean[] delims;
for (int i=0; i<getRangeCount(); ++i) { int low = getRangeStart(i); int high = getRangeEnd(i);
result.append('['); int count = getRangeCount();
int inputSetRangeCount = inputSet.getRangeCount(); int inputSetRangeIndex = 0; rlRange = fRangeList;
int mask = 1 << (i % 32); int itemCount = unicodePointSet.getRangeCount(); for (int j = 0; j < itemCount; ++j) { int startChar = unicodePointSet.getRangeStart(j); int itemCount = excludedCodePoints.getRangeCount(); for (int j = 0; j < itemCount; ++j) { int startChar = excludedCodePoints.getRangeStart(j);
int limitRange = inclusions.getRangeCount();
private void enumCnERange(int start, int end, int ce32, ContractionsAndExpansions cne) { if (cne.checkTailored == 0) { // There is no tailoring. // No need to collect nor check the tailored set. } else if (cne.checkTailored < 0) { // Collect the set of code points with mappings in the tailoring data. if (ce32 == Collation.FALLBACK_CE32) { return; // fallback to base, not tailored } else { cne.tailored.add(start, end); } // checkTailored > 0: Exclude tailored ranges from the base data enumeration. } else if (start == end) { if (cne.tailored.contains(start)) { return; } } else if (cne.tailored.containsSome(start, end)) { if (cne.ranges == null) { cne.ranges = new UnicodeSet(); } cne.ranges.set(start, end).removeAll(cne.tailored); int count = cne.ranges.getRangeCount(); for (int i = 0; i < count; ++i) { cne.handleCE32(cne.ranges.getRangeStart(i), cne.ranges.getRangeEnd(i), ce32); } } cne.handleCE32(start, end, ce32); }
int n = getRangeCount(); int result; StringBuilder full = new StringBuilder();