public static int codePointAt(char[] a, int index, int limit) {
        if (index >= limit || limit < 0 || limit > a.length) {
            throw new IndexOutOfBoundsException();
        }
        return codePointAtImpl(a, index, limit);
    }
public static int codePointAt ( char [ ] a , int index , int limit ) { if ( index >= limit || limit < 0 || limit > a . length ) { throw new IndexOutOfBoundsException ( ) ; } return codePointAtImpl ( a , index , limit ) ; }
Returns the code point at the given index of the
{@code char} array, where only array elements with
{@code index} less than {@code limit} can be used. If
the {@code char} value at the given index in the
{@code char} array is in the high-surrogate range, the
following index is less than the {@code limit}, and the
{@code char} value at the following index is in the
low-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the {@code char} value at the given index is returned.

@param a the {@code char} array
@param index the index to the {@code char} values (Unicode
code units) in the {@code char} array to be converted
@param limit the index after the last array element that
can be used in the {@code char} array
@return the Unicode code point at the given index
@exception NullPointerException if {@code a} is null.
@exception IndexOutOfBoundsException if the {@code index}
argument is negative or not less than the {@code limit}
argument, or if the {@code limit} argument is negative or
greater than the length of the {@code char} array.
@since  1.5