Java Code Examples for com.ibm.icu.text.UTF16#isLeadSurrogate()
The following examples show how to use
com.ibm.icu.text.UTF16#isLeadSurrogate() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ReplaceableUCharacterIterator.java From fitnotifications with Apache License 2.0 | 6 votes |
/** * Returns the current codepoint * @return current codepoint */ @Override public int currentCodePoint(){ // cannot use charAt due to it different // behaviour when index is pointing at a // trail surrogate, check for surrogates int ch = current(); if(UTF16.isLeadSurrogate((char)ch)){ // advance the index to get the next code point next(); // due to post increment semantics current() after next() // actually returns the next char which is what we want int ch2 = current(); // current should never change the current index so back off previous(); if(UTF16.isTrailSurrogate((char)ch2)){ // we found a surrogate pair return Character.toCodePoint((char)ch, (char)ch2); } } return ch; }
Example 2
Source File: IntTrie.java From fitnotifications with Apache License 2.0 | 6 votes |
/** * Get the value associated with a pair of surrogates. * @param lead a lead surrogate * @param trail a trail surrogate */ public final int getSurrogateValue(char lead, char trail) { if (!UTF16.isLeadSurrogate(lead) || !UTF16.isTrailSurrogate(trail)) { throw new IllegalArgumentException( "Argument characters do not form a supplementary character"); } // get fold position for the next trail surrogate int offset = getSurrogateOffset(lead, trail); // get the real data from the folded lead/trail units if (offset > 0) { return m_data_[offset]; } // return m_initialValue_ if there is an error return m_initialValue_; }
Example 3
Source File: CharacterIteration.java From fitnotifications with Apache License 2.0 | 6 votes |
public static int previous32(CharacterIterator ci) { if (ci.getIndex() <= ci.getBeginIndex()) { return DONE32; } char trail = ci.previous(); int retVal = trail; if (UTF16.isTrailSurrogate(trail) && ci.getIndex()>ci.getBeginIndex()) { char lead = ci.previous(); if (UTF16.isLeadSurrogate(lead)) { retVal = (((int)lead - UTF16.LEAD_SURROGATE_MIN_VALUE) << 10) + ((int)trail - UTF16.TRAIL_SURROGATE_MIN_VALUE) + UTF16.SUPPLEMENTARY_MIN_VALUE; } else { ci.next(); } } return retVal; }
Example 4
Source File: CharacterIteration.java From fitnotifications with Apache License 2.0 | 6 votes |
public static int current32(CharacterIterator ci) { char lead = ci.current(); int retVal = lead; if (retVal < UTF16.LEAD_SURROGATE_MIN_VALUE) { return retVal; } if (UTF16.isLeadSurrogate(lead)) { int trail = (int)ci.next(); ci.previous(); if (UTF16.isTrailSurrogate((char)trail)) { retVal = ((lead - UTF16.LEAD_SURROGATE_MIN_VALUE) << 10) + (trail - UTF16.TRAIL_SURROGATE_MIN_VALUE) + UTF16.SUPPLEMENTARY_MIN_VALUE; } } else { if (lead == CharacterIterator.DONE) { if (ci.getIndex() >= ci.getEndIndex()) { retVal = DONE32; } } } return retVal; }
Example 5
Source File: ReplaceableUCharacterIterator.java From trekarta with GNU General Public License v3.0 | 6 votes |
/** * Returns the current codepoint * @return current codepoint */ @Override public int currentCodePoint(){ // cannot use charAt due to it different // behaviour when index is pointing at a // trail surrogate, check for surrogates int ch = current(); if(UTF16.isLeadSurrogate((char)ch)){ // advance the index to get the next code point next(); // due to post increment semantics current() after next() // actually returns the next char which is what we want int ch2 = current(); // current should never change the current index so back off previous(); if(UTF16.isTrailSurrogate((char)ch2)){ // we found a surrogate pair return Character.toCodePoint((char)ch, (char)ch2); } } return ch; }