public static IntsRef toUTF32(char[] s, int offset, int length, IntsRefBuilder scratch) {int charIdx = offset;int intIdx = 0;final int charLimit = offset + length;while(charIdx < charLimit) {scratch.grow(intIdx+1);final int utf32 = Character.codePointAt(s, charIdx, charLimit);scratch.setIntAt(intIdx, utf32);charIdx += Character.charCount(utf32);intIdx++;}scratch.setLength(intIdx);return scratch.get();}

public static IntsRef toUTF32 ( char [ ] s , int offset , int length , IntsRefBuilder scratch ) { int charIdx = offset ; int intIdx = 0 ; final int charLimit = offset + length ; while ( charIdx < charLimit ) { scratch . grow ( intIdx + 1 ) ; final int utf32 = Character . codePointAt ( s , charIdx , charLimit ) ; scratch . setIntAt ( intIdx , utf32 ) ; charIdx += Character . charCount ( utf32 ) ; intIdx ++ ; } scratch . setLength ( intIdx ) ; return scratch . get ( ) ; }
public static Int32sRef ToUTF32(char[] s, int offset, int length, Int32sRef scratch){int charIdx = offset;int intIdx = 0;int charLimit = offset + length;while (charIdx < charLimit){scratch.Grow(intIdx + 1);int utf32 = Character.CodePointAt(s, charIdx, charLimit);scratch.Int32s[intIdx] = utf32;charIdx += Character.CharCount(utf32);intIdx++;}scratch.Length = intIdx;return scratch;}
